User Tools

Site Tools


ru:tutorial:fluids

Differences

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

Link to this comparison view

Next revision
Previous revision
ru:tutorial:fluids [2022/02/24 21:44] – created (половина в переводе furnygoru:tutorial:fluids [2022/02/25 20:19] (current) – external edit 127.0.0.1
Line 1: Line 1:
 ====== Создание жидкостей ====== ====== Создание жидкостей ======
  
-===== Ознакомление ===== +===== Введение ===== 
-Здесь мы рассмотрим создание жидкости. Если вы планируете создать несколько жидкостей, рекомендуется создать абстрактный базовый класс жидкостей, в котором вы зададите необходимые значения по умолчанию, которые будут общими для его подклассов. Мы также сделаем так, чтобы она генерировалась в мире, как озера.+Здесь мы рассмотрим создание жидкости. Если вы планируете создать несколько жидкостей, рекомендуется создать абстрактный базовый класс жидкостей, в котором вы зададите необходимые значения по умолчанию, которые будут общими для его подклассов. Мы также сделаем так, чтобы жидкость генерировалась в мире, как озера.
  
 ===== Создание абстрактной жидкости ===== ===== Создание абстрактной жидкости =====
Line 25: Line 25:
  
  /**  /**
- * Выполняйте действия, когда жидкость поступает в сменный блок. Вода ссылается+ * Выполняйте действия, когда жидкость поступает в следующий блок. Вода ссылается
  * на таблицу добычи блока. Лава воспроизводит звук "block.lava.extinguish".  * на таблицу добычи блока. Лава воспроизводит звук "block.lava.extinguish".
  */  */
Line 38: Line 38:
  * Жидкость - это Вода.  * Жидкость - это Вода.
  
- * @вернём, может ли данная жидкость перетекать в это FluidState+ * @вернём, может ли данная жидкость перетекать в этот FluidState
  */  */
  @Override  @Override
Line 46: Line 46:
  
  /**  /**
-Возможно, это связано с проверкой расстояния на предмет попадания в близлежащие отверстия? +На каком расстоянии проверять попадания в близлежащие отверстия? 
- * Вода возвращает 4. Лава возвращает 2 в Верхнем мире и 4 в Нижнем.+ * Вода возвращает 4. Лава возвращает 2 в Верхнем мире и 4 в Нижнем мире.
  */  */
  @Override  @Override
Line 55: Line 55:
  
  /**  /**
-Water returns 1. Lava returns in the Overworld and in the Nether.+Вода возвращает 1. Лава возвращает в Верхнем мире и в Нижнем мире.
  */  */
  @Override  @Override
Line 63: Line 63:
  
  /**  /**
-Water returns 5. Lava returns 30 in the Overworld and 10 in the Nether.+Вода возвращает 5. Лава возвращает 30 в Верхнем мире и 10 в Нижнем мире.
  */  */
  @Override  @Override
Line 71: Line 71:
  
  /**  /**
-Water and Lava both return 100.0F.+Вода и лава возвращают 100.0F.
  */  */
  @Override  @Override
Line 80: Line 80:
 </yarncode> </yarncode>
  
-===== Implementation ===== +===== Реализация ===== 
-Now let's make an actual fluid which will have still and flowing variants. For this tutorialwe will call it Acid. The missing references will be filled in shortly.+Теперь давайте создадим настоящую жидкостькоторая будет иметь неподвижные и текучие варианты. В этом уроке мы будем называть его Acid(Кислота)Недостающие ссылки будут заполнены в ближайшее время.
  
 <yarncode java [enable_line_numbers="true"]> <yarncode java [enable_line_numbers="true"]>
Line 87: Line 87:
  @Override  @Override
  public class_3611 method_15751() {  public class_3611 method_15751() {
- return YOUR_STILL_FLUID_HERE;+ return VASH_STILL_FLUID_ZDES;
  }  }
  
  @Override  @Override
  public class_3611 method_15750() {  public class_3611 method_15750() {
- return YOUR_FLOWING_FLUID_HERE;+ return VASH_FLOWING_FLUID_ZDES;
  }  }
  
  @Override  @Override
  public class_1792 method_15774() {  public class_1792 method_15774() {
- return YOUR_BUCKET_ITEM_HERE;+ return VASH_BUCKET_ITEM_ZDES;
  }  }
  
  @Override  @Override
  protected class_2680 method_15790(class_3610 fluidState) {  protected class_2680 method_15790(class_3610 fluidState) {
- return YOUR_FLUID_BLOCK_HERE.method_9564().method_11657(class_2741.field_12538, method_15741(fluidState));+ return VASH_FLUID_BLOCK_ZDES.method_9564().method_11657(class_2741.field_12538, method_15741(fluidState));
  }  }
  
Line 137: Line 137:
 </yarncode> </yarncode>
  
-Nextwe'll make static instances of still and flowing acid variants, and an acid bucketIn your ''ModInitializer'':+Далее мы создадим статические экземпляры неподвижных и текущих вариантов кислотыа также ведро кислотыВ вашем ''ModInitializer'':
  
 <yarncode java [enable_line_numbers="true"]> <yarncode java [enable_line_numbers="true"]>
Line 157: Line 157:
 </yarncode> </yarncode>
  
-To make a custom fluid behave more like water or lavayou must add it to a corresponding fluid tagFor water, make a ''data/minecraft/tags/fluids/water.json'' file and write the identifiers of your fluids in there:+Чтобы ваша жидкость вела себя больше как вода или лававы должны добавить ее в соответствующий тег жидкостидля воды создайте файл ''data /minecraft/tags/fluids/water.json'' и запишите туда идентификаторы ваших жидкостей:
 <code json [enable_line_numbers="true"]> <code json [enable_line_numbers="true"]>
 { {
Line 169: Line 169:
 </code> </code>
  
-===== Making a fluid block ===== +===== Создание блока жидкости ===== 
-Next we need to create a block which will represent acid in the world. ''<yarn net.minecraft.class_2404>'' is the class we need to usebut since its constructor is protectedwe can't construct it directlySome ways to use it are to make a subclass or an anonymous subclassHere we will be showing the latterIn your ''ModInitializer'':+Далее нам нужно создать блок, который будет представлять кислоту в мире. ''<yarn net.minecraft.class_2404>'' - это класскоторый нам нужно использоватьно поскольку его конструктор защищен, мы не можем создать его напрямуюНекоторые способы его использования заключаются в создании подкласса или анонимного подклассаЗдесь мы покажем последнееВ вашем ''ModInitializer'':
  
 <yarncode java [enable_line_numbers="true"]> <yarncode java [enable_line_numbers="true"]>
Line 183: Line 183:
 </yarncode> </yarncode>
  
-Now that we have these static objectswe can go back to ''AcidFluid'' and fill in the overridden methods:+Теперькогда у нас есть эти статические объекты, мы можем вернуться к ''AcidFluid'' и заполнить переопределенные методы:
  
 <yarncode java [enable_line_numbers="true"]> <yarncode java [enable_line_numbers="true"]>
Line 240: Line 240:
 </yarncode> </yarncode>
  
-===== Rendering setup ===== +===== Настройка рендеринга ===== 
-For your fluids to have textures or be tinted with a coloryou will need to register a ''FluidRenderHandler'' for themHerewe will reuse water's textures and just change the tint color applied to themTo make sure the textures are rendered as translucentyou can use Fabric'''BlockRenderLayerMap''.+Чтобы ваши жидкости имели текстуру или были окрашены в определенный цветвам нужно будет зарегистрировать для них ''FluidRenderHandler''Здесь мы будем повторно использовать текстуры воды и просто изменим цвет оттенкапримененный к нимЧтобы убедитьсячто текстуры отображаются как полупрозрачные, вы можете использовать ''BlockRenderLayerMap'' Fabric'а.
  
 <yarncode java [enable_line_numbers="true"]> <yarncode java [enable_line_numbers="true"]>
Line 256: Line 256:
  BlockRenderLayerMap.INSTANCE.putFluids(class_1921.method_23583(), TutorialMod.STILL_ACID, TutorialMod.FLOWING_ACID);  BlockRenderLayerMap.INSTANCE.putFluids(class_1921.method_23583(), TutorialMod.STILL_ACID, TutorialMod.FLOWING_ACID);
  
- //if you want to use custom textures they needs to be registered+ //если вы хотите использовать свои текстуры, они должны быть зарегистрированы
- //In this example this is unnecessary because the vanilla water textures are already registered+ //В этом примере в этом нет необходимости, поскольку текстуры ванильной воды уже зарегистрированы
- //To register your custom textures use this method.+ //Чтобы зарегистрировать свои пользовательские текстуры, используйте этот метод:
  //ClientSpriteRegistryCallback.event(PlayerScreenHandler.BLOCK_ATLAS_TEXTURE).register((atlasTexture, registry) -> {  //ClientSpriteRegistryCallback.event(PlayerScreenHandler.BLOCK_ATLAS_TEXTURE).register((atlasTexture, registry) -> {
  //    registry.register(new Identifier("modid:block/custom_fluid_still"));  //    registry.register(new Identifier("modid:block/custom_fluid_still"));
Line 269: Line 269:
 </yarncode> </yarncode>
  
-If you want to use your own fluid texturesyou can refer to vanilla's assets ((''assets/minecraft/blockstates/water.json''\\ ''assets/minecraft/models/block/water.json''\\ ''assets/minecraft/textures/block/water_still.png''\\ ''assets/minecraft/textures/block/water_still.png.mcmeta''\\ ''assets/minecraft/textures/block/water_flow.png''\\ ''assets/minecraft/textures/block/water_flow.png.mcmeta'')) as a template.+Если вы хотите использовать свои собственные текучие текстурывы можете обратиться к ванильным ресурсам ((''assets/minecraft/blockstates/water.json''\\ ''assets/minecraft/models/block/water.json''\\ ''assets/minecraft/textures/block/water_still.png''\\ ''assets/minecraft/textures/block/water_still.png.mcmeta''\\ ''assets/minecraft/textures/block/water_flow.png''\\ ''assets/minecraft/textures/block/water_flow.png.mcmeta'')) as a template.
  
-===== Generation in the world ===== +===== Генерация в мире ===== 
-To make lakes of acid generate in the worldyou can create a ''<yarn net.minecraft.class_3085>'' in your ''ModInitializer'' and then add it to the biomes you want it to generate in:+Чтобы заставить озера кислоты генерироваться в миревы можете создать ''<yarn net.minecraft.class_3085>'' в вашем ''ModInitializer'' а затем добавить его в биомы, в которых вы хотите, чтобы он генерировался:
  
 <code java [enable_line_numbers="true"]> <code java [enable_line_numbers="true"]>
Line 281: Line 281:
  ACID_LAKE = Registry.register(Registry.FEATURE, new Identifier(MOD_ID, "acid_lake"), new LakeFeature(SingleStateFeatureConfig::deserialize));  ACID_LAKE = Registry.register(Registry.FEATURE, new Identifier(MOD_ID, "acid_lake"), new LakeFeature(SingleStateFeatureConfig::deserialize));
   
- // generate in swampssimilar to water lakesbut with a chance of 40 (the higher the numberthe lower the generation chance)+ // генерация в болотахпохожих на водные озерано с вероятностью 40 (чем выше числотем ниже вероятность генерации)
  Biomes.SWAMP.addFeature(  Biomes.SWAMP.addFeature(
  GenerationStep.Feature.LOCAL_MODIFICATIONS,  GenerationStep.Feature.LOCAL_MODIFICATIONS,
ru/tutorial/fluids.1645739069.txt.gz · Last modified: 2022/02/24 21:44 by furnygo