22.xhtml 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!--
  3. h t t :: / / t /
  4. h t t :: // // t //
  5. h ttttt ttttt ppppp sssss // // y y sssss ttttt //
  6. hhhh t t p p s // // y y s t //
  7. h hh t t ppppp sssss // // yyyyy sssss t //
  8. h h t t p s :: / / y .. s t .. /
  9. h h t t p sssss :: / / yyyyy .. sssss t .. /
  10. <https://y.st./>
  11. Copyright © 2015 Alex Yst <mailto:copyright@y.st>
  12. This program is free software: you can redistribute it and/or modify
  13. it under the terms of the GNU General Public License as published by
  14. the Free Software Foundation, either version 3 of the License, or
  15. (at your option) any later version.
  16. This program is distributed in the hope that it will be useful,
  17. but WITHOUT ANY WARRANTY; without even the implied warranty of
  18. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  19. GNU General Public License for more details.
  20. You should have received a copy of the GNU General Public License
  21. along with this program. If not, see <https://www.gnu.org./licenses/>.
  22. -->
  23. <!DOCTYPE html>
  24. <html xmlns="http://www.w3.org/1999/xhtml">
  25. <head>
  26. <base href="https://y.st./en/weblog/2015/03-March/22.xhtml" />
  27. <title>The discovery of minetest.register_biome() &lt;https://y.st./en/weblog/2015/03-March/22.xhtml&gt;</title>
  28. <link rel="icon" type="image/png" href="/link/CC_BY-SA_4.0/y.st./icon.png" />
  29. <link rel="stylesheet" type="text/css" href="/link/basic.css" />
  30. <link rel="stylesheet" type="text/css" href="/link/site-specific.css" />
  31. <script type="text/javascript" src="/script/javascript.js" />
  32. <meta name="viewport" content="width=device-width" />
  33. </head>
  34. <body>
  35. <nav>
  36. <p>
  37. <a href="/en/">Home</a> |
  38. <a href="/en/a/about.xhtml">About</a> |
  39. <a href="/en/a/contact.xhtml">Contact</a> |
  40. <a href="/a/canary.txt">Canary</a> |
  41. <a href="/en/URI_research/"><abbr title="Uniform Resource Identifier">URI</abbr> research</a> |
  42. <a href="/en/opinion/">Opinions</a> |
  43. <a href="/en/coursework/">Coursework</a> |
  44. <a href="/en/law/">Law</a> |
  45. <a href="/en/a/links.xhtml">Links</a> |
  46. <a href="/en/weblog/2015/03-March/22.xhtml.asc">{this page}.asc</a>
  47. </p>
  48. <hr/>
  49. <p>
  50. Weblog index:
  51. <a href="/en/weblog/"><abbr title="American Standard Code for Information Interchange">ASCII</abbr> calendars</a> |
  52. <a href="/en/weblog/index_ol_ascending.xhtml">Ascending list</a> |
  53. <a href="/en/weblog/index_ol_descending.xhtml">Descending list</a>
  54. </p>
  55. <hr/>
  56. <p>
  57. Jump to entry:
  58. <a href="/en/weblog/2015/03-March/07.xhtml">&lt;&lt;First</a>
  59. <a rel="prev" href="/en/weblog/2015/03-March/21.xhtml">&lt;Previous</a>
  60. <a rel="next" href="/en/weblog/2015/03-March/23.xhtml">Next&gt;</a>
  61. <a href="/en/weblog/latest.xhtml">Latest&gt;&gt;</a>
  62. </p>
  63. <hr/>
  64. </nav>
  65. <header>
  66. <h1>The discovery of <code>minetest.register_biome()</code></h1>
  67. <p>Day 00015: Sunday, 2015 March 22</p>
  68. </header>
  69. </p>
  70. Early this morning, I set out to verify that PayPal is still giving me trouble and refusing to allow me to use their service.
  71. The plan was to hassle Bandcamp about it to try to get them to accept another form of payment.
  72. However, for some odd reason, PayPal accepted the payment from me.
  73. However tonight, PayPal has stopped accepting payments from me again, so I cannot buy the second album I was planning on buying.
  74. I think I will hassle PayPal (instead of Bandcamp) about it.
  75. I tried to reach PayPal support through their website, but as was the case last time I had issues with PayPal, they hide their contact information in an attempt to make those who would complain go away.
  76. As before, I&apos;ve had to <a href="https://twitter.com/YstDomain/status/579870230886895616">take this publicly to Twitter</a> as I can&apos;t find another way to reach PayPal support.
  77. </p>
  78. </p>
  79. In any case, I&apos;m now the proud owner of a copy of Marc with a C&apos;s album <a href="https://marcwithac.bandcamp.com/album/an-introduction-to-marc-with-a-c">An Introduction To Marc With a C</a>.
  80. I bought the album to listen to &quot;Love My Little Squiddy&quot;, but almost every song on the album is awesome.
  81. &quot;Drunk Classic Rock Fans&quot; is probably my favorite on the album.
  82. I hope to get the PayPal situation sorted out in a timely manor though, so I can get &quot;I Will Repossess Your Heart&quot; and the rest of <a href="https://marcwithac.bandcamp.com/album/losing-salt">Losing Salt</a>.
  83. </p>
  84. </p>
  85. I took a look at the output of <abbr title="PHP: Hypertext Preprocessor">PHP</abbr>&apos;s <code>highlight_string()</code> function to see what I could do with it.
  86. I didn&apos;t get far.
  87. Things looked promising at first, but then I noticed that neither type of quotation mark was being encoded for use on a Web page.
  88. I thought it would cause substring replacement issues, but now as I type this, I think I realize I was wrong.
  89. I will again try to tackle the issue tomorrow.
  90. </p>
  91. </p>
  92. After hitting a dead end with <code>highlight_string()</code>, I shut down Eschalot, which had been running on my server, and started up the Minetest server software.
  93. The current world served is just a test world, and the plan was that it would become corrupted as I slowly twisted minetest_game into minetyst_game.
  94. Once minetyst_game became presentable, I would delete the served world entirely and start anew with a more permanent world.
  95. I even added warnings of such in the server description and message of the day.
  96. However, once I started looking through the minetest_game code to start cleaning it up, I quickly chanced upon a function not listed in the <a href="https://github.com/minetest/minetest/blob/master/doc/lua_api.txt">Minetest <abbr title="application programming interface">API</abbr> documentation</a>: <code>minetest.register_biome()</code>.
  97. It seems this function defines the biomes for use in the v7 map generator, as well as probably in the v5 map generator.
  98. Only one biome is defined in minetest_game, but through experimenting, I found I can definitely get a second biome defined.
  99. The problem, however, is that I have no clue what I&apos;m doing as I have no documentation to work with.
  100. <code>minetest.register_biome()</code> takes a single argument, a table containing entries labeled with particular keys.
  101. Most of the functionality of these keys can be figured out by just playing with the function and generating worlds, but <code>y_min</code>, <code>y_max</code>, <code>heat_point</code>, and <code>humidity_point</code> still confuse me.
  102. I would think that <code>y_min</code> and <code>y_max</code> would define the hight of the biome, but this isn&apos;t the case.
  103. Despite <code>y_min</code> being set to -32000, the biomes only extend down to -32, at which point mapgen_stone takes over.
  104. <code>heat_point</code> and <code>humidity_point</code> are no doubt used to decide which biomes are placed where, but they are single integers, not ranges, and I have no idea what happens when the heat and humidity noise conflict on what biome should go where.
  105. For example, I set a desert biome to have higher heat and lower humidity than the default biome.
  106. So what happens if an area has higher heat and higher humidity? Or lower heat and lower humidity? Which biome is placed there in these cases? In any case, if I can figure out how this function works, I should be able to set the map up to be exactly as I want it.
  107. All the other tricky biome stuff is easily accomplished using <code>minetest.register_decoration()</code>.
  108. </p>
  109. </p>
  110. PayPal is giving me grief, but the <abbr title="National Security Agency">NSA</abbr> and <abbr title="Federal Bureau of Investigation">FBI</abbr> currently aren&apos;t.
  111. My <a href="/a/canary.txt">canary</a> still sings and I may still speak freely today.
  112. </p>
  113. <hr/>
  114. <p>
  115. Copyright © 2015 Alex Yst;
  116. You may modify and/or redistribute this document under the terms of the <a rel="license" href="/license/gpl-3.0-standalone.xhtml"><abbr title="GNU&apos;s Not Unix">GNU</abbr> <abbr title="General Public License version Three or later">GPLv3+</abbr></a>.
  117. If for some reason you would prefer to modify and/or distribute this document under other free copyleft terms, please ask me via email.
  118. My address is in the source comments near the top of this document.
  119. This license also applies to embedded content such as images.
  120. For more information on that, see <a href="/en/a/licensing.xhtml">licensing</a>.
  121. </p>
  122. <p>
  123. <abbr title="World Wide Web Consortium">W3C</abbr> standards are important.
  124. This document conforms to the <a href="https://validator.w3.org./nu/?doc=https%3A%2F%2Fy.st.%2Fen%2Fweblog%2F2015%2F03-March%2F22.xhtml"><abbr title="Extensible Hypertext Markup Language">XHTML</abbr> 5.1</a> specification and uses style sheets that conform to the <a href="http://jigsaw.w3.org./css-validator/validator?uri=https%3A%2F%2Fy.st.%2Fen%2Fweblog%2F2015%2F03-March%2F22.xhtml"><abbr title="Cascading Style Sheets">CSS</abbr>3</a> specification.
  125. </p>
  126. </body>
  127. </html>