User Tools

Site Tools


tutorial:concepts

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
tutorial:concepts [2022/05/23 18:57] mehrcrafttutorial:concepts [2022/05/23 19:29] mehrcraft
Line 1: Line 1:
 ====== Essential Minecraft Concepts ====== ====== Essential Minecraft Concepts ======
  
-This section was designed for beginners by a beginnerto help understand basic concepts and definitions that are sometimes missed or misunderstood.  Some concepts relate to elements visible in game, others to used files or classes that are frequently used while modding.  +This section was designed as a 10,000m overview for beginners by beginnerscovering essential concepts and definitions needed as background knowledge before you start your first mod.  Some concepts relate to elements visible in game, others to used files or classes that are frequently used while modding.  Understanding these terms and concepts will hopefully make it easier to understand the other sections of the Wiki.
  
 ^ Concept      ^ Description       ^ ^ Concept      ^ Description       ^
Line 14: Line 14:
 | Texture | These are the graphic images used to give surfaces their unique look.  They are usually implemented as 16x16 pixel .PNG files. | | Texture | These are the graphic images used to give surfaces their unique look.  They are usually implemented as 16x16 pixel .PNG files. |
 | Renderer |  While most mods make use blockstates and model JSON files plus .PNG textures to provide the full representation of blocks, items and entities and rely on the default rendering mechanism to show them in the world as you'd expect, there are situations when you will need more complex behaviors.  In those cases you will need to create a custom renderer to achieve the desired result. | | Renderer |  While most mods make use blockstates and model JSON files plus .PNG textures to provide the full representation of blocks, items and entities and rely on the default rendering mechanism to show them in the world as you'd expect, there are situations when you will need more complex behaviors.  In those cases you will need to create a custom renderer to achieve the desired result. |
 +| NBT | NBT methods are what you use in your Entity class to make sure that your block's data gets stored and loaded from the world's save.  Sounds complicated but it is a simple matter of overriding a couple methods and putting a couple lines of code there.  This is described well in the section "Adding a BlockEntity". |
 +| Threads | Minecraft is designed in two separate pieces, a client and server piece.  When you play on a server the division is clear, but the server piece still exists when you play on your own computer.  These pieces are implemented as threads and you need be very aware of them while coding.  You will often see a given overridden method being called by both the client and server threads, and to distinguish to which thread you are responding to you will need to test for it. The easiest and most common way is to check with the boolean method world.isClient(). |
 +| Data Sync | Although you can store block data on its entity, such entity data does not travel automatically between the server and client threads.  You need to enable it yourself with a couple lines of code, again following the description in "Adding a BlockEntity". |
  
- +This is an early version of the Essential Minecraft Concepts page.  There are certainly many concepts that still need to be added.  Beginners, if you come across a concept that was not described and that stumped you during your learning, please add it to this page.  Experts, please correct any errors you find, keeping the descriptions simple enough so that people that know nothing about Minecraft or Fabric modding will still be able to understand them.
- +
-UNDER CONSTRUCTION  +
-Please correct errors if you notice them.+
tutorial/concepts.txt · Last modified: 2022/05/24 11:06 by 127.0.0.1