{"id":722,"date":"2018-08-20T15:07:09","date_gmt":"2018-08-20T13:07:09","guid":{"rendered":"https:\/\/www.mineprogramming.org\/?p=722"},"modified":"2018-08-20T15:09:12","modified_gmt":"2018-08-20T13:09:12","slug":"structure_generation","status":"publish","type":"post","link":"https:\/\/mineprogramming.org\/en\/structure_generation\/","title":{"rendered":"\u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440"},"content":{"rendered":"<p>\u0412 \u044d\u0442\u043e\u043c \u0443\u0440\u043e\u043a\u0435 \u044f \u043d\u0430\u043f\u0438\u0448\u0443, \u043a\u0430\u043a \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0432 inner core. \u041c\u044b \u0431\u0443\u0434\u0435\u043c \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0444\u0430\u043a\u0435\u043b \u043d\u0438\u0436\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0432 \u043a\u0430\u0436\u0434\u043e\u043c 50 \u0447\u0430\u043d\u043a\u0435.<\/p>\n<p><img loading=\"lazy\" class=\"alignnone size-medium wp-image-725\" src=\"https:\/\/www.mineprogramming.org\/wp-content\/uploads\/2018\/08\/\u0411\u0435\u0437-\u0438\u043c\u0435\u043d\u0438-1-300x193.png\" alt=\"\" width=\"300\" height=\"193\" srcset=\"https:\/\/mineprogramming.org\/wp-content\/uploads\/2018\/08\/\u0411\u0435\u0437-\u0438\u043c\u0435\u043d\u0438-1-300x193.png 300w, https:\/\/mineprogramming.org\/wp-content\/uploads\/2018\/08\/\u0411\u0435\u0437-\u0438\u043c\u0435\u043d\u0438-1-768x494.png 768w, https:\/\/mineprogramming.org\/wp-content\/uploads\/2018\/08\/\u0411\u0435\u0437-\u0438\u043c\u0435\u043d\u0438-1-1024x659.png 1024w, https:\/\/mineprogramming.org\/wp-content\/uploads\/2018\/08\/\u0411\u0435\u0437-\u0438\u043c\u0435\u043d\u0438-1.png 1272w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><!--more--><\/p>\n<p>\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u043f\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u044b\u043c \u0435\u0439 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u043c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443:<\/p>\n<pre lang=\"javascript\">function buildBigTorch(x, y, z) {\r\n    World.setBlock(x, y, z, 98);\r\n    World.setBlock(x, y + 1, z, 98);\r\n    World.setBlock(x, y + 2, z, 87);\r\n    World.setBlock(x, y + 2, z, 51);\r\n    World.setBlock(x + 1, y + 2, z, 98);\r\n    World.setBlock(x - 1, y + 2, z, 98);\r\n    World.setBlock(x, y + 2, z + 1, 98);\r\n    World.setBlock(x, y + 2, z - 1, 98);\r\n}<\/pre>\n<p>\u0421\u0430\u043c\u0430 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u043b\u0431\u0435\u043a\u0430 &#8220;GenerateChunk&#8221;. \u041f\u0440\u0438 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u043d\u043e\u0432\u043e\u0433\u043e \u0447\u0430\u043d\u043a\u0430 \u043e\u043d \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043d\u0430\u0447\u0430\u043b\u0430 \u0447\u0430\u043d\u043a\u0430. \u0414\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u0444\u0430\u043a\u0435\u043b \u0438\u0437 \u0431\u043b\u043e\u043a\u043e\u0432 \u043d\u0435 \u043f\u043e\u044f\u0432\u043b\u044f\u043b\u0441\u044f \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u0447\u0430\u043d\u043a\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u043b\u0437\u043e\u0432\u0430\u0442\u044c Math.random(). \u041a\u0430\u0436\u0434\u044b\u0439 50 \u0447\u0430\u043d\u043a \u044d\u0442\u043e 1\/50 &#8211; 2%. \u0421\u0442\u043e\u0438\u0442 \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u044d\u0442\u043e \u043d\u0435 \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u0444\u0430\u043a\u0435\u043b \u0431\u0443\u0434\u0435\u0442 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0440\u043e\u0432\u043d\u043e \u043a\u0430\u0436\u0434\u044b\u0435 50 \u0447\u0430\u043d\u043a\u043e\u0432, \u0442\u0430\u043a \u043a\u0430\u043a \u044d\u0442\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e, \u043d\u043e \u0435\u0441\u043b\u0438 \u0431\u0440\u0430\u0442\u044c \u043c\u043d\u043e\u0433\u043e \u0444\u0430\u043a\u0435\u043b\u043e\u0432, \u0442\u043e \u0432 \u0441\u0440\u0435\u0434\u043d\u0435\u043c \u043e\u043d\u0438 \u0431\u0443\u0434\u0443\u0442 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0440\u0430\u0437 \u0432 50 \u0447\u0430\u043d\u043a\u043e\u0432. \u041d\u0438\u0436\u0435 \u043a\u043e\u0434, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442\u044c \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0441 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c\u044e 2%:<\/p>\n<pre lang=\"javascript\">if (Math.random() < 1\/50) {}<\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u0443\u0447\u0438\u0442\u0441\u044f \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0432\u043d\u0443\u0442\u0440\u0438 \u0447\u0430\u043d\u043a\u0430. \u0424\u0443\u043d\u043a\u0446\u0438\u044f Math.random() \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043e\u0442 0 \u0434\u043e 1, \u041d\u0415 \u0432\u043a\u043b\u044e\u0447\u0430\u044f 1. [0;1). \u0422\u0430\u043a\u0436\u0435 \u0432\u0430\u0436\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0447\u0430\u043d\u043a\u0430 \u043e\u0442\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f \u043e\u0442 \u043c\u0438\u0440\u043e\u0432\u044b\u0445, \u0438 \u0432\u044b\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043f\u043e \u0444\u043e\u0440\u043c\u0443\u043b\u0435: Math.floor(\u043c\u0438\u0440\u043e\u0432\u044b\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b\/16), \u0442\u043e \u0435\u0441\u0442\u044c \u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0435 \u043d\u0430 16 \u0438 \u043e\u043a\u0440\u0443\u0433\u043b\u0451\u043d\u043d\u044b\u0435 \u0432 \u043c\u0435\u043d\u044c\u0448\u0443\u044e \u0441\u0442\u043e\u0440\u043e\u043d\u0443 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0431\u043b\u043e\u043a\u043e\u0432. \u042d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0438 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 - \u0443\u043c\u043d\u043e\u0436\u0430\u0435\u043c \u043d\u0430 \u0440\u0430\u0437\u043c\u0435\u0440 \u0447\u0430\u043d\u043a\u0430 \u0438 \u043e\u043a\u0440\u0443\u0433\u043b\u044f\u0435\u043c \u0432 \u043c\u0435\u043d\u044c\u0448\u0443\u044e \u0441\u0442\u043e\u0440\u043e\u043d\u0443:<\/p>\n<pre lang=\"javascript\">var x = chunkX*16 + Math.floor(Math.random() * 16);\r\nvar z = chunkZ*16 + Math.floor(Math.random() * 16);<\/pre>\n<p>\u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0447\u0442\u043e\u0431\u044b \u0444\u0430\u043a\u0435\u043b \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043b\u0441\u044f \u043f\u0440\u044f\u043c\u043e \u043d\u0430 \u043f\u043e\u0432\u0435\u0440\u0445\u043d\u043e\u0441\u0442\u0438, \u0430 \u043d\u0435 \u0433\u0434\u0435-\u0442\u043e \u043f\u043e\u0434 \u0437\u0435\u043c\u043b\u0451\u0439. \u0414\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u0432\u0435\u0440\u0445\u043d\u043e\u0441\u0442\u0438 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0446\u0438\u043a\u043b while \u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e y. \u041f\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 (\u0447\u0438\u0442\u0430\u0439 \u043f\u043e\u0432\u0442\u043e\u0440\u0435\u043d\u0438\u0438) \u043e\u0442 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u043d\u0438\u043c\u0430\u0442\u044c\u0441\u044f 1. \u041a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u0431\u043b\u043e\u043a \u043f\u043e\u0434 \u044d\u0442\u0438\u043c\u0438 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u043c\u0438 \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0437\u0435\u043c\u043b\u0451\u0439, \u0446\u0438\u043a\u043b \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043d\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u0441\u044f \u0438 \u043c\u044b \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443. \u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f y = 200 - \u0432\u044b\u0441\u043e\u0442\u0430 \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043d\u0430\u0447\u043d\u0451\u0442\u0441\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430, \u0432\u044b\u0431\u0440\u0430\u043b \u0435\u0451 \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u043b\u0438\u0448\u043d\u0438\u0435 56 \u0431\u043b\u043e\u043a\u043e\u0432, \u0433\u0434\u0435 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u043e\u0432\u0435\u0440\u0445\u043d\u043e\u0441\u0442\u0438. \u0422\u0430\u043a\u0436\u0435 \u043d\u0430\u043f\u0438\u0448\u0435\u043c, \u0447\u0442\u043e\u0431\u044b \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f y \u043d\u0435 \u0431\u044b\u043b\u0430 \u043c\u0435\u043d\u044c\u0448\u0435 0, \u043d\u0430 \u0441\u043b\u0443\u0447\u0430\u0439, \u0435\u0441\u043b\u0438 \u0442\u0430\u043a \u0438 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0439\u0434\u0435\u043d \u0431\u043b\u043e\u043a \u0437\u0435\u043c\u043b\u0438, \u0442\u0440\u0430\u0432\u044b \u0438\u043b\u0438 \u043a\u0430\u043c\u043d\u044f.<\/p>\n<pre lang=\"javascript\">var y = 200;\r\nvar blockID = World.getBlock(x, y - 1, z).id;\r\nwhile(blockID  != 3 && blockID  != 2 && blockID  != 1 && y>0) {\r\n    blockID = World.getBlock(x, y - 1, z).id;\r\n    y--;\r\n}<\/pre>\n<p>\u041f\u043e\u0432\u0435\u0440\u0445\u043d\u043e\u0441\u0442\u044c\u044e \u043c\u044b \u0441\u0447\u0438\u0442\u0430\u0435\u043c \u0438\u043b\u0438 \u0437\u0435\u043c\u043b\u044e, \u0438\u043b\u0438 \u0442\u0440\u0430\u0432\u0443 \u0438\u043b\u0438 \u0431\u043b\u043e\u043a \u043a\u0430\u043c\u043d\u044f. \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u044b\u0437\u043e\u0432\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043f\u043e\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0444\u0430\u043a\u0435\u043b\u0430:<\/p>\n<pre lang=\"javascript\">buildBigTorch(x, y, z);<\/pre>\n<p>\u0412\u043e\u0442 \u0438 \u0432\u0441\u0451, \u044d\u0442\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e, \u043d\u0438\u0436\u0435 \u0432\u0435\u0441\u044c \u043a\u043e\u0434.<\/p>\n<pre lang=\"javascript\">function buildBigTorch(x, y, z) {\r\n    World.setBlock(x, y, z, 98);\r\n    World.setBlock(x, y + 1, z, 98);\r\n    World.setBlock(x, y + 2, z, 87);\r\n    World.setBlock(x, y + 2, z, 51);\r\n    World.setBlock(x + 1, y + 2, z, 98);\r\n    World.setBlock(x - 1, y + 2, z, 98);\r\n    World.setBlock(x, y + 2, z + 1, 98);\r\n    World.setBlock(x, y + 2, z - 1, 98);\r\n}\r\nCallback.addCallback(\"GenerateChunk\", function(chunkX, chunkZ) {\r\n    if (Math.random() < 1\/50) {\r\n        blockID = World.getBlock(x, y - 1, z).id;\r\n        y--;\r\n    }\r\n    buildBigTorch(x, y, z);\r\n});\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u0412 \u044d\u0442\u043e\u043c \u0443\u0440\u043e\u043a\u0435 \u044f \u043d\u0430\u043f\u0438\u0448\u0443, \u043a\u0430\u043a \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0432 inner core. \u041c\u044b \u0431\u0443\u0434\u0435\u043c \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0444\u0430\u043a\u0435\u043b \u043d\u0438\u0436\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0432 \u043a\u0430\u0436\u0434\u043e\u043c 50 \u0447\u0430\u043d\u043a\u0435.<\/p>\n","protected":false},"author":6,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[13],"tags":[],"translation":{"provider":"WPGlobus","version":"2.6.8","language":"en","enabled_languages":["ru","en"],"languages":{"ru":{"title":true,"content":true,"excerpt":false},"en":{"title":false,"content":false,"excerpt":false}}},"_links":{"self":[{"href":"https:\/\/mineprogramming.org\/en\/wp-json\/wp\/v2\/posts\/722"}],"collection":[{"href":"https:\/\/mineprogramming.org\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mineprogramming.org\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mineprogramming.org\/en\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/mineprogramming.org\/en\/wp-json\/wp\/v2\/comments?post=722"}],"version-history":[{"count":11,"href":"https:\/\/mineprogramming.org\/en\/wp-json\/wp\/v2\/posts\/722\/revisions"}],"predecessor-version":[{"id":742,"href":"https:\/\/mineprogramming.org\/en\/wp-json\/wp\/v2\/posts\/722\/revisions\/742"}],"wp:attachment":[{"href":"https:\/\/mineprogramming.org\/en\/wp-json\/wp\/v2\/media?parent=722"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mineprogramming.org\/en\/wp-json\/wp\/v2\/categories?post=722"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mineprogramming.org\/en\/wp-json\/wp\/v2\/tags?post=722"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}