Smaragdant blocks, end tools fixes, fur & leaves blocks sounds fixes,

translations, shaders
This commit is contained in:
paulevsGitch 2021-03-27 18:01:19 +03:00
parent 941b2ace9f
commit c381260487
35 changed files with 216 additions and 29 deletions

View file

@ -6,6 +6,7 @@ import java.util.List;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
import net.fabricmc.fabric.api.tool.attribute.v1.FabricToolTags;
import net.minecraft.block.BlockState;
import net.minecraft.block.Blocks;
import net.minecraft.block.FallingBlock;
@ -20,7 +21,9 @@ public class EndstoneDustBlock extends FallingBlock {
private static final int COLOR = MHelper.color(226, 239, 168);
public EndstoneDustBlock() {
super(FabricBlockSettings.copyOf(Blocks.SAND).materialColor(Blocks.END_STONE.getDefaultMaterialColor()));
super(FabricBlockSettings.copyOf(Blocks.SAND)
.breakByTool(FabricToolTags.SHOVELS)
.materialColor(Blocks.END_STONE.getDefaultMaterialColor()));
}
@Override

View file

@ -32,10 +32,10 @@ public class FurBlock extends AttachedBlock implements IRenderTypeable {
private final ItemConvertible drop;
private final int dropChance;
public FurBlock(ItemConvertible drop, int light, int dropChance) {
public FurBlock(ItemConvertible drop, int light, int dropChance, boolean wet) {
super(FabricBlockSettings.of(Material.REPLACEABLE_PLANT)
.breakByTool(FabricToolTags.SHEARS)
.sounds(BlockSoundGroup.WET_GRASS)
.sounds(wet ? BlockSoundGroup.WET_GRASS : BlockSoundGroup.GRASS)
.luminance(light)
.breakByHand(true)
.noCollision());
@ -46,7 +46,7 @@ public class FurBlock extends AttachedBlock implements IRenderTypeable {
public FurBlock(ItemConvertible drop, int dropChance) {
super(FabricBlockSettings.of(Material.REPLACEABLE_PLANT)
.breakByTool(FabricToolTags.SHEARS)
.sounds(BlockSoundGroup.WET_GRASS)
.sounds(BlockSoundGroup.GRASS)
.breakByHand(true)
.noCollision());
this.drop = drop;

View file

@ -0,0 +1,72 @@
package ru.betterend.blocks.complex;
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
import net.minecraft.block.Block;
import net.minecraft.tag.BlockTags;
import net.minecraft.tag.ItemTags;
import ru.betterend.blocks.EndPedestal;
import ru.betterend.blocks.basis.BlockBase;
import ru.betterend.blocks.basis.EndPillarBlock;
import ru.betterend.blocks.basis.EndSlabBlock;
import ru.betterend.blocks.basis.EndStairsBlock;
import ru.betterend.blocks.basis.EndWallBlock;
import ru.betterend.recipe.CraftingRecipes;
import ru.betterend.recipe.builders.GridRecipe;
import ru.betterend.registry.EndBlocks;
import ru.betterend.util.TagHelper;
public class CrystalSubblocksMaterial {
public final Block polished;
public final Block tiles;
public final Block pillar;
public final Block stairs;
public final Block slab;
public final Block wall;
public final Block pedestal;
public final Block bricks;
public final Block brick_stairs;
public final Block brick_slab;
public final Block brick_wall;
public CrystalSubblocksMaterial(String name, Block source) {
FabricBlockSettings material = FabricBlockSettings.copyOf(source);
polished = EndBlocks.registerBlock(name + "_polished", new BlockBase(material));
tiles = EndBlocks.registerBlock(name + "_tiles", new BlockBase(material));
pillar = EndBlocks.registerBlock(name + "_pillar", new EndPillarBlock(material));
stairs = EndBlocks.registerBlock(name + "_stairs", new EndStairsBlock(source));
slab = EndBlocks.registerBlock(name + "_slab", new EndSlabBlock(source));
wall = EndBlocks.registerBlock(name + "_wall", new EndWallBlock(source));
pedestal = EndBlocks.registerBlock(name + "_pedestal", new EndPedestal(source));
bricks = EndBlocks.registerBlock(name + "_bricks", new BlockBase(material));
brick_stairs = EndBlocks.registerBlock(name + "_bricks_stairs", new EndStairsBlock(bricks));
brick_slab = EndBlocks.registerBlock(name + "_bricks_slab", new EndSlabBlock(bricks));
brick_wall = EndBlocks.registerBlock(name + "_bricks_wall", new EndWallBlock(bricks));
// Recipes //
GridRecipe.make(name + "_bricks", bricks).setOutputCount(4).setShape("##", "##").addMaterial('#', source).setGroup("end_bricks").build();
GridRecipe.make(name + "_polished", polished).setOutputCount(4).setShape("##", "##").addMaterial('#', bricks).setGroup("end_tile").build();
GridRecipe.make(name + "_tiles", tiles).setOutputCount(4).setShape("##", "##").addMaterial('#', polished).setGroup("end_small_tile").build();
GridRecipe.make(name + "_pillar", pillar).setShape("#", "#").addMaterial('#', slab).setGroup("end_pillar").build();
GridRecipe.make(name + "_stairs", stairs).setOutputCount(4).setShape("# ", "## ", "###").addMaterial('#', source).setGroup("end_stone_stairs").build();
GridRecipe.make(name + "_slab", slab).setOutputCount(6).setShape("###").addMaterial('#', source).setGroup("end_stone_slabs").build();
GridRecipe.make(name + "_bricks_stairs", brick_stairs).setOutputCount(4).setShape("# ", "## ", "###").addMaterial('#', bricks).setGroup("end_stone_stairs").build();
GridRecipe.make(name + "_bricks_slab", brick_slab).setOutputCount(6).setShape("###").addMaterial('#', bricks).setGroup("end_stone_slabs").build();
GridRecipe.make(name + "_wall", wall).setOutputCount(6).setShape("###", "###").addMaterial('#', source).setGroup("end_wall").build();
GridRecipe.make(name + "_bricks_wall", brick_wall).setOutputCount(6).setShape("###", "###").addMaterial('#', bricks).setGroup("end_wall").build();
CraftingRecipes.registerPedestal(name + "_pedestal", pedestal, slab, pillar);
// Item Tags //
TagHelper.addTag(ItemTags.SLABS, slab, brick_slab);
TagHelper.addTag(ItemTags.STONE_BRICKS, bricks);
TagHelper.addTag(ItemTags.STONE_CRAFTING_MATERIALS, source);
TagHelper.addTag(ItemTags.STONE_TOOL_MATERIALS, source);
// Block Tags //
TagHelper.addTag(BlockTags.STONE_BRICKS, bricks);
TagHelper.addTag(BlockTags.WALLS, wall, brick_wall);
TagHelper.addTag(BlockTags.SLABS, slab, brick_slab);
}
}

View file

@ -26,13 +26,13 @@ import ru.betterend.blocks.basis.EndStairsBlock;
import ru.betterend.blocks.basis.EndTrapdoorBlock;
import ru.betterend.blocks.basis.EndWoodenPlateBlock;
import ru.betterend.item.EndArmorItem;
import ru.betterend.item.EndAxeItem;
import ru.betterend.item.EndHammerItem;
import ru.betterend.item.EndHoeItem;
import ru.betterend.item.EndPickaxeItem;
import ru.betterend.item.EndShovelItem;
import ru.betterend.item.EndSwordItem;
import ru.betterend.item.PatternedItem;
import ru.betterend.item.tool.EndAxeItem;
import ru.betterend.item.tool.EndHammerItem;
import ru.betterend.item.tool.EndHoeItem;
import ru.betterend.item.tool.EndPickaxeItem;
import ru.betterend.item.tool.EndShovelItem;
import ru.betterend.item.tool.EndSwordItem;
import ru.betterend.recipe.builders.AlloyingRecipe;
import ru.betterend.recipe.builders.AnvilRecipe;
import ru.betterend.recipe.builders.FurnaceRecipe;

View file

@ -1,4 +1,4 @@
package ru.betterend.item;
package ru.betterend.item.tool;
import net.fabricmc.fabric.api.tool.attribute.v1.DynamicAttributeTool;
import net.fabricmc.fabric.api.tool.attribute.v1.FabricToolTags;

View file

@ -1,4 +1,4 @@
package ru.betterend.item;
package ru.betterend.item.tool;
import java.util.UUID;

View file

@ -1,4 +1,4 @@
package ru.betterend.item;
package ru.betterend.item.tool;
import net.minecraft.item.HoeItem;
import net.minecraft.item.ToolMaterial;

View file

@ -1,4 +1,4 @@
package ru.betterend.item;
package ru.betterend.item.tool;
import net.fabricmc.fabric.api.tool.attribute.v1.DynamicAttributeTool;
import net.fabricmc.fabric.api.tool.attribute.v1.FabricToolTags;

View file

@ -1,7 +1,9 @@
package ru.betterend.item;
package ru.betterend.item.tool;
import net.fabricmc.fabric.api.tool.attribute.v1.DynamicAttributeTool;
import net.fabricmc.fabric.api.tool.attribute.v1.FabricToolTags;
import net.fabricmc.fabric.impl.tool.attribute.ToolManagerImpl;
import net.fabricmc.fabric.impl.tool.attribute.ToolManagerImpl.Entry;
import net.minecraft.block.BlockState;
import net.minecraft.entity.LivingEntity;
import net.minecraft.item.Item;
@ -25,6 +27,12 @@ public class EndShovelItem extends ShovelItem implements DynamicAttributeTool, P
return 0;
}
@Override
public float getMiningSpeedMultiplier(ItemStack stack, BlockState state) {
Entry entry = ToolManagerImpl.entryNullable(state.getBlock());
return (entry != null && entry.getMiningLevel(FabricToolTags.SHOVELS) >= 0) ? this.miningSpeed : super.getMiningSpeedMultiplier(stack, state);
}
@Override
public String getModelPattern(String name) {
return Patterns.createJson(Patterns.ITEM_HANDHELD, name);

View file

@ -1,4 +1,4 @@
package ru.betterend.item;
package ru.betterend.item.tool;
import net.fabricmc.fabric.api.tool.attribute.v1.DynamicAttributeTool;
import net.minecraft.item.SwordItem;

View file

@ -19,7 +19,7 @@ import net.minecraft.item.Items;
import net.minecraft.loot.context.LootContext;
import net.minecraft.loot.context.LootContextParameters;
import net.minecraft.util.math.MathHelper;
import ru.betterend.item.EndHammerItem;
import ru.betterend.item.tool.EndHammerItem;
import ru.betterend.util.MHelper;
@Mixin(AbstractBlock.class)

View file

@ -27,6 +27,7 @@ import ru.betterend.blocks.basis.TripleTerrainBlock;
import ru.betterend.blocks.basis.VineBlock;
import ru.betterend.blocks.basis.WallMushroomBlock;
import ru.betterend.blocks.complex.ColoredMaterial;
import ru.betterend.blocks.complex.CrystalSubblocksMaterial;
import ru.betterend.blocks.complex.MetalMaterial;
import ru.betterend.blocks.complex.StoneMaterial;
import ru.betterend.blocks.complex.WoodenMaterial;
@ -104,7 +105,7 @@ public class EndBlocks {
public static final Block MOSSY_GLOWSHROOM_SAPLING = registerBlock("mossy_glowshroom_sapling", new MossyGlowshroomSaplingBlock());
public static final Block MOSSY_GLOWSHROOM_CAP = registerBlock("mossy_glowshroom_cap", new MossyGlowshroomCapBlock());
public static final Block MOSSY_GLOWSHROOM_HYMENOPHORE = registerBlock("mossy_glowshroom_hymenophore", new GlowingHymenophoreBlock());
public static final Block MOSSY_GLOWSHROOM_FUR = registerBlock("mossy_glowshroom_fur", new FurBlock(MOSSY_GLOWSHROOM_SAPLING, 15, 16));
public static final Block MOSSY_GLOWSHROOM_FUR = registerBlock("mossy_glowshroom_fur", new FurBlock(MOSSY_GLOWSHROOM_SAPLING, 15, 16, true));
public static final WoodenMaterial MOSSY_GLOWSHROOM = new WoodenMaterial("mossy_glowshroom", MaterialColor.GRAY, MaterialColor.WOOD);
public static final Block PYTHADENDRON_SAPLING = registerBlock("pythadendron_sapling", new PythadendronSaplingBlock());
@ -176,7 +177,7 @@ public class EndBlocks {
public static final Block BLUE_VINE_SEED = registerBlock("blue_vine_seed", new BlueVineSeedBlock());
public static final Block BLUE_VINE = registerBlockNI("blue_vine", new BlueVineBlock());
public static final Block BLUE_VINE_LANTERN = registerBlock("blue_vine_lantern", new BlueVineLanternBlock());
public static final Block BLUE_VINE_FUR = registerBlock("blue_vine_fur", new FurBlock(BLUE_VINE_SEED, 15, 3));
public static final Block BLUE_VINE_FUR = registerBlock("blue_vine_fur", new FurBlock(BLUE_VINE_SEED, 15, 3, false));
public static final Block LANCELEAF_SEED = registerBlock("lanceleaf_seed", new LanceleafSeedBlock());
public static final Block LANCELEAF = registerBlockNI("lanceleaf", new LanceleafBlock());
@ -184,7 +185,7 @@ public class EndBlocks {
public static final Block GLOWING_PILLAR_SEED = registerBlock("glowing_pillar_seed", new GlowingPillarSeedBlock());
public static final Block GLOWING_PILLAR_ROOTS = registerBlockNI("glowing_pillar_roots", new GlowingPillarRootsBlock());
public static final Block GLOWING_PILLAR_LUMINOPHOR = registerBlock("glowing_pillar_luminophor", new GlowingPillarLuminophorBlock());
public static final Block GLOWING_PILLAR_LEAVES = registerBlock("glowing_pillar_leaves", new FurBlock(GLOWING_PILLAR_SEED, 15, 3));
public static final Block GLOWING_PILLAR_LEAVES = registerBlock("glowing_pillar_leaves", new FurBlock(GLOWING_PILLAR_SEED, 15, 3, false));
public static final Block SMALL_JELLYSHROOM = registerBlock("small_jellyshroom", new SmallJellyshroomBlock());
public static final Block BOLUX_MUSHROOM = registerBlock("bolux_mushroom", new BoluxMushroomBlock());
@ -198,7 +199,7 @@ public class EndBlocks {
public static final Block AMARANITA_HYPHAE = registerBlock("amaranita_hyphae", new AmaranitaStemBlock());
public static final Block AMARANITA_HYMENOPHORE = registerBlock("amaranita_hymenophore", new AmaranitaHymenophoreBlock());
public static final Block AMARANITA_LANTERN = registerBlock("amaranita_lantern", new GlowingHymenophoreBlock());
public static final Block AMARANITA_FUR = registerBlock("amaranita_fur", new FurBlock(MOSSY_GLOWSHROOM_SAPLING, 15, 4));
public static final Block AMARANITA_FUR = registerBlock("amaranita_fur", new FurBlock(MOSSY_GLOWSHROOM_SAPLING, 15, 4, true));
public static final Block AMARANITA_CAP = registerBlock("amaranita_cap", new AmaranitaCapBlock());
public static final Block NEON_CACTUS = registerBlock("neon_cactus", new NeonCactusBlock());
@ -281,6 +282,7 @@ public class EndBlocks {
public static final Block AURORA_CRYSTAL = registerBlock("aurora_crystal", new AuroraCrystalBlock());
public static final Block AMBER_BLOCK = registerBlock("amber_block", new AmberBlock());
public static final Block SMARAGDANT_CRYSTAL = registerBlock("smaragdant_crystal", new SmaragdantCrystalBlock());
public static final CrystalSubblocksMaterial SMARAGDANT_SUBBLOCKS = new CrystalSubblocksMaterial("smaragdant_crystal", SMARAGDANT_CRYSTAL);
public static final Block SMARAGDANT_CRYSTAL_SHARD = registerBlock("smaragdant_crystal_shard", new SmaragdantCrystalShardBlock());
public static final Block RESPAWN_OBELISK = registerBlock("respawn_obelisk", new RespawnObeliskBlock());

View file

@ -38,18 +38,18 @@ import ru.betterend.config.Configs;
import ru.betterend.item.DrinkItem;
import ru.betterend.item.EnchantedPetalItem;
import ru.betterend.item.EndArmorItem;
import ru.betterend.item.EndAxeItem;
import ru.betterend.item.EndHammerItem;
import ru.betterend.item.EndHoeItem;
import ru.betterend.item.EndPickaxeItem;
import ru.betterend.item.EndShovelItem;
import ru.betterend.item.EndSpawnEggItem;
import ru.betterend.item.EndSwordItem;
import ru.betterend.item.EternalCrystalItem;
import ru.betterend.item.PatternedDiscItem;
import ru.betterend.item.PatternedItem;
import ru.betterend.item.material.EndArmorMaterial;
import ru.betterend.item.material.EndToolMaterial;
import ru.betterend.item.tool.EndAxeItem;
import ru.betterend.item.tool.EndHammerItem;
import ru.betterend.item.tool.EndHoeItem;
import ru.betterend.item.tool.EndPickaxeItem;
import ru.betterend.item.tool.EndShovelItem;
import ru.betterend.item.tool.EndSwordItem;
import ru.betterend.tab.CreativeTabs;
import ru.betterend.util.TagHelper;

View file

@ -0,0 +1,5 @@
{
"variants": {
"": { "model": "betterend:block/tenanea_leaves" }
}
}

View file

@ -818,5 +818,34 @@
"item.betterend.cave_pumpkin_pie": "Cave Pumpkin Pie",
"item.betterend.music_disc_strange_and_alien": "§bMusic Disc§r",
"item.betterend.music_disc_strange_and_alien.desc": "§5Firel§r - §fStrange And Alien§r"
"item.betterend.music_disc_strange_and_alien.desc": "§5Firel§r - §fStrange And Alien§r",
"block.betterend.hydralux_petal_block_amber": "Amber Petal Block",
"block.betterend.hydralux_petal_block_beige": "Beige Petal Block",
"block.betterend.hydralux_petal_block_cream": "Cream Petal Block",
"block.betterend.hydralux_petal_block_dark_green": "Dark Green Petal Block",
"block.betterend.hydralux_petal_block_forest_green": "Forest Green Petal Block",
"block.betterend.hydralux_petal_block_hot_pink": "Hot Pink Petal Block",
"block.betterend.hydralux_petal_block_indigo": "Indigo Petal Block",
"block.betterend.hydralux_petal_block_maroon": "Maroon Petal Block",
"block.betterend.hydralux_petal_block_navy": "Navy Petal Block",
"block.betterend.hydralux_petal_block_olive": "Olive Petal Block",
"block.betterend.hydralux_petal_block_pale_green": "Pale Green Petal Block",
"block.betterend.hydralux_petal_block_pale_pink": "Pale Pink Petal Block",
"block.betterend.hydralux_petal_block_pale_yellow": "Pale Yellow Petal Block",
"block.betterend.hydralux_petal_block_sky_blue": "Sky Blue Petal Block",
"block.betterend.hydralux_petal_block_slate_gray": "Slate Gray Petal Block",
"block.betterend.hydralux_petal_block_violet": "Violet Petal Block",
"block.betterend.smaragdant_crystal_bricks": "Smaragdant Bricks",
"block.betterend.smaragdant_crystal_bricks_slab": "Smaragdant Bricks Slab",
"block.betterend.smaragdant_crystal_bricks_stairs": "Smaragdant Bricks Stairs",
"block.betterend.smaragdant_crystal_bricks_wall": "Smaragdant Bricks Wall",
"block.betterend.smaragdant_crystal_pedestal": "Smaragdant Pedestal",
"block.betterend.smaragdant_crystal_pillar": "Smaragdant Pillar",
"block.betterend.smaragdant_crystal_polished": "Smaragdant Polished",
"block.betterend.smaragdant_crystal_slab": "Smaragdant Slab",
"block.betterend.smaragdant_crystal_stairs": "Smaragdant Stairs",
"block.betterend.smaragdant_crystal_tiles": "Smaragdant Tiles",
"block.betterend.smaragdant_crystal_wall": "Smaragdant Wall"
}

View file

@ -837,5 +837,34 @@
"block.betterend.neon_cactus": "Неоновый кактус",
"item.betterend.cave_pumpkin_pie": "Пирог из пещерной тыквы",
"item.betterend.music_disc_strange_and_alien": "§bПластинка§r"
"item.betterend.music_disc_strange_and_alien": "§bПластинка§r",
"block.betterend.hydralux_petal_block_amber": "Янтарный блок лепестков",
"block.betterend.hydralux_petal_block_beige": "Бежевый блок лепестков",
"block.betterend.hydralux_petal_block_cream": "Кремовый блок лепестков",
"block.betterend.hydralux_petal_block_dark_green": "Тёмно-зелёный блок лепестков",
"block.betterend.hydralux_petal_block_forest_green": "Лесной зелёный блок лепестков",
"block.betterend.hydralux_petal_block_hot_pink": "Ярко-розовый блок лепестков",
"block.betterend.hydralux_petal_block_indigo": "Индиго блок лепестков",
"block.betterend.hydralux_petal_block_maroon": "Бордовый блок лепестков",
"block.betterend.hydralux_petal_block_navy": "Темно-синий блок лепестков",
"block.betterend.hydralux_petal_block_olive": "Оливковый блок лепестков",
"block.betterend.hydralux_petal_block_pale_green": "Бледно-зеленый блок лепестков",
"block.betterend.hydralux_petal_block_pale_pink": "Бледно-розовый блок лепестков",
"block.betterend.hydralux_petal_block_pale_yellow": "Бледно-жёлтый блок лепестков",
"block.betterend.hydralux_petal_block_sky_blue": "Неьесно-голубой блок лепестков",
"block.betterend.hydralux_petal_block_slate_gray": "Сланцево-серый блок лепестков",
"block.betterend.hydralux_petal_block_violet": "Лиловый блок лепестков",
"block.betterend.smaragdant_crystal_bricks": "Смарагдантовые кирпичи",
"block.betterend.smaragdant_crystal_bricks_slab": "Плита из смарагдантовых кирпичей",
"block.betterend.smaragdant_crystal_bricks_stairs": "Ступени из смарагдантовых кирпичей",
"block.betterend.smaragdant_crystal_bricks_wall": "Стена из смарагдантовых кирпичей",
"block.betterend.smaragdant_crystal_pedestal": "Смарагдантовый пьедестал",
"block.betterend.smaragdant_crystal_pillar": "Смарагдантовая колонна",
"block.betterend.smaragdant_crystal_polished": "Полированный смарагдант",
"block.betterend.smaragdant_crystal_slab": "Смарагдантовая плита",
"block.betterend.smaragdant_crystal_stairs": "Смарагдантовые ступени",
"block.betterend.smaragdant_crystal_tiles": "Смарагдантовая плитка",
"block.betterend.smaragdant_crystal_wall": "Смарагдантовая стена"
}

View file

@ -0,0 +1,3 @@
{
"defaultMaterial": "betterend:glow_all"
}

View file

@ -0,0 +1,3 @@
{
"defaultMaterial": "betterend:glow_all"
}

View file

@ -0,0 +1,3 @@
{
"defaultMaterial": "betterend:glow_all"
}

View file

@ -0,0 +1,3 @@
{
"defaultMaterial": "betterend:glow_all"
}

View file

@ -0,0 +1,3 @@
{
"defaultMaterial": "betterend:glow_all"
}

View file

@ -0,0 +1,3 @@
{
"defaultMaterial": "betterend:glow_all"
}

View file

@ -0,0 +1,3 @@
{
"defaultMaterial": "betterend:glow_all"
}

View file

@ -0,0 +1,3 @@
{
"defaultMaterial": "betterend:glow_all"
}

View file

@ -0,0 +1,3 @@
{
"defaultMaterial": "betterend:glow_all"
}

View file

@ -0,0 +1,3 @@
{
"defaultMaterial": "betterend:glow_all"
}

View file

@ -0,0 +1,3 @@
{
"defaultMaterial": "betterend:glow_all"
}

View file

@ -0,0 +1,6 @@
{
"parent": "betterend:block/cube_noshade",
"textures": {
"texture": "betterend:block/tenanea_leaves"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 217 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 244 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 246 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 250 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 238 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 243 B