Textures made of blocks
Textures made of blocks
PMCRP
Making a texture for items/blocks!
Hi! This is a tutorial to help you learn how I make item/block textures. This tutorial is made for the PMCRP to help show people how they can make an entry for season 2 and 3!
Firstly is what you’re going to use to make it! There are tons of different software, and quite a few are good for pixel art!
My main suggestion, and what I personally use is FireAlpaca (it’s free!) Because that’s what I use, the tutorial heavily assumes that is what is being used.
There’s alternate software to use, I used to use Pixil Art. You Gotta be Joshing me suggested Krita and Paint.net.
So now we’ve got our art software ready! All standard items/blocks are 16 pixels on both axis (sometimes to help me make sure I have the right size I will copy the original texture, click this text to open a download page for the textures)
In this screenshot I go ahead and prepare what I need:
— I set my pen size to 1 (pixel) & make sure AntiAliasing is turned off
— I set my eraser to 1 pixel as well
— I open a new layer in preperation
As you can tell, I’m doing the texture for lapis lazuli! It can help to open up a reference image to help you make your texture!
I drew the basic shape I wanted, and then deleted the original texture which was the layer beneath (so I only have the one layer)
Lapis has quite a lot of different colours and patterns (like most gemstones do) so I made sure to make good use of opacity and blending with more layers.
I add on layers of two lighter shades of blue, and one yellow (although I add a much darker blue and brown in the next stage)
This is where all those different layers come in! Different layers means we can change the opacity of one layer, and its blending style.
I mess around with different opacity levels until im satisfied, and then I move to the next step.
I add a very dark tone, and a very light tone to add highlights and shadows to the texture!
I once again make use of opacity and blending (its really just trial and error on what settings I use for a layer)
It confirms with you that layers cant be saved (which is what we want) and then gives you the option to save as a transparent png!
Voila! We now have a shiny new texture, ready to send in as our entry for the PMCRP!
Стандартные текстуры Майнкрафт
Стандартные текстуры Майнкрафт перенесут вас в очень интересный пакет который изменит и улучшит ваш майнкрафт полностью сохранив его ванильный внешний вид.
Тут есть и альтернативные чуть измененные варианты которые делают картинку более уникальной и реалистичной, и измененные некоторые цвета которые лучше смотрятся или просто, по мнению автора, должны иметь другие текстуры.
Например: Вода стала другой, не такой синей и темной; Некоторая трава стала меньше; Появились оттенки и разные варианты обычных блоков; Изменили цвет многие блоки, железо стало темным, сильно изменилось стекло. И в каждом паке свои интересные новинки. Пробуйте и найдите свой мир в игре.
Cub3D, — текстур пак предложит трехмерную модель практически для каждого блока.
Mister Gutsy Blaze, текстур пак, который добавит модель Mister Gutsy из игры Fallout.
Undertale Fighting, текстур пак создан для того, что бы менять звуки и частицы боя, на звуки из игры «Undertale».
Ёкарный бабай, надо что-то делать, — это текстур пак изменит тотем бессмертия.
Riсk’s Default, представленный текстур пак создан для того.
Textures Made of Blocks, достаточно неординарный текстур пак.
Phantom Elytra, текстур пак отреставрирует вид элитр.
Basic Blocks
In this tutorial we will register a simple block with a texture and a loot table. It will be a similar process to basic items.
Concepts
Blocks are very similar to items. They must be registered so the game knows about them. Each type block is an instance of the Block
class (not each physical block in the world). Basic traits of your block can be set with a properties object but more complex behavior will require your own class that extends Block
New Block
In your init package make a new class called BlockInit. The code here is mostly the same as in ItemInit. Just make sure to say Block instead of Item everywhere. The string you pass the register function is the block’s registry name which will be used for naming asset files later.
method. This takes a Material which sets a few characteristics about your block like whether its flammable, how it reacts to pistons, default sounds, whether it blocks player motion, and what tools can mine it by default. Vanilla has many options to chose from, just let your IDE autocomplete from Material
Then your Properties
object has many other methods you can call to set different traits, just like we did with items. strength
lets you pass in how long it takes to break and how resistant to explosions it is. You have to call requiresCorrectToolForDrops
if it should be like stone and drop nothing without the tool (which tool is set by tags in the next section). If you want it to be a light source you can use lightLevel with a lambda expression that maps a blockstate to a value from 1 to 16. There are many more like friction
(used by ice), speedFactor
(used by soul sand) and jumpFactor
(used by honey). So that supplier might looks something like this:
To make your block require a certain type and level of tool, you must add it to a tag. Tags are how minecraft catagories blocks/items behavior in a way accessible to datapacks. For example, there is a tag for sapplings
and one for crops
Vanilla adds tags for each tool type: mineable / pickaxe
and for each harvest level: needs_stone_tool
. You can add your block to some of these tags to make certain tools mine it quickly and respect the requiresCorrectToolForDrops ()
Create the folders src / main / resources / data / minecraft / tags / blocks
. If the tag name has a /
file goes in the mineable
folder). These files will contain a json object with the replace
key set to false (so you don’t remove vanilla behavior) and the values
key set to a list of registry names for the blocks you want to behave as described by the tag.
. Both will contain the following text:
This will make my block mine quickly with a pickaxe and only drop when using a pickaxe of iron or higher. Remember you must also call requiresCorrectToolForDrops ()
on your block properties object for this to work.
Block Item
You need a BlockItem to place your block. You can register it manually like your other items but that’s tedious so lets make it automatic. We will use the events system to run some code when the game registers all the other items. You can just copy this code for now or read the events tutorial for a more detailed explanation of how events work.
At the top of your class add this line to allow it to subscribe to events.
Then make a static function with the SubscribeEvent annotation. Its argument will be the RegisterEvent so it fires when things are supposed to be registered. Each registry is processed severalty so we make sure that this event fired for items.
In that function get the Item registry and loop through all the blocks. For each block, we make an Item.Properties that puts it in our creative tab. Then we make a BlockItem with those properties to place our block. We register the BlockItem with the same registry name as the block.
Instead of doing it this way you could manually register a BlockItem for each of your blocks in your ItemInit class but that’s really tedious so I’d advise doing it this way. There might be some blocks you make later where you’ll what a unique block item. All you’d have to do is add an if statement to check for that block and create the new BlockItem differently.
Main Class
In the constructor of your main class add this line to call the register method of your DeferredRegister (same as for items).
Assets
In your project folder go to src / main / resources / assets / mod_id
. Make a new folder called blockstates and in your models folder make a new folder called block. In textures make a new folder called blocks and put the png image you want to use for your block’s texture. Then go out to src / main / resources / data / mod_id
and make a folder called loot_tables and in that make a folder called blocks.
In blockstates make a file called block_name.json (replace block_name with whatever string you passed in as your registry name). Since this is a simple block, we just need one varient that points to a model. Make sure you change firstmod to your mod id and smile_block to the registry name of your block.
This is the simplest possible blockstate definition. More complex blocks can have different sides (like grass), rotation (like furnaces and chests), age (like crops or ice) and you can define your own custom properties. The possibilities are endless and will likely be discussed more in depth in another tutorial.
In models/block make a file called block_name.json. This is the file you’d change if you want different sides of the block to look different (like a grass block) but since I don’t, I’ll just point to one texture (make sure to change smile_block to the name of your image file).
In models/item make a block_name.json file that just parents off your block model
In lang/en_us.json add a line that gives your block a name. Remember to change the mod id and block registry name.
In loot_tables/blocks make block_name.json. This sets what drops when you break the block. This is a simple loot table that just drops the block’s item but it could be anything.
Loot tables are also how drops from entities are determined and what you find in chests. They deserve a tutorial of their own but in the mean time, take a look at vanilla’s loot tables and the wiki for inspiration.
You should end up with a file structure like this:
Data Generators
If your mod has a lot of blocks that just use their own basic texture, it can be tedious (and error prone) to repeatedly copy the model/blockstate/loot_table json file, just changing a single line each time. Luckily, Minecraft provides a way to generate these files from code. This will be covered in detail in a future tutorial. Join the discord server to be notified when it is released.
Run the game
If we run the game, we can see that the block shows up in our creative tab. We can place it and break it with an iron pickaxe
08/09/2022 This project will be backdated & updated for Minecraft 1.8.9-1.19, more information will be posted when applicable. Thank you for your patience.
The following versions are currently planned for development.
Red text = No work has been done yet. | Orange text = Is currently being worked on. | Green text = Is complete and available for download.
V1.17.0.0 For Minecraft 1.17
V1.18.0.0 For Minecraft 1.18
V1.19.0.0 For Minecraft 1.19
This pack is 100% Vanilla, it does not require Optifine to function, but will still work with it.
This pack adds over 800 randomized textures across many of the blocks to the game! It works by using a resource pack feature that was implemented around Minecraft version 1.8 called ‘variants’.
This project was originally started in 2015 to fill a void I found lacking in texture packs at that time period, and as a thank you for reaching 1,000 subscribers on YouTube.
Now, it’s more of a passion project for a feature I’d like to see more use of by the Mojang Dev Team. Until that day and beyond, I hope to maintain this pack at my own pace and vision. So please be patient with any and all updates.
109 Flower Pot
72 Waterlily
23 Double Sunflower Top
20 Allium
19 Coal Ore
19 Gold Ore
19 Diamond Ore
19 Redstone Ore
19 Iron Ore
18 Red Tulip
18 Pink Tulip
18 Orange Tulip
18 White Tulip
13 Brewing Stand
13 Oak Leaves
11 Daisy
11 Orchid
11 Dead Bush
11 Dandelion
11 Lapis Ore
10 Tall Grass
9 Acacia Log
9 Dark Oak
9 Oak Log
9 Spruce Log
9 Purpur Pillar Side
9 Purpur Pillar Top
8 Jungle Leaves
8 Houstonia
8 Brick
8 Brick Stairs
8 Brick Slab
8 Purpur Block
8 Purpur Stairs
8 Purpur Slab
7 Mob Spawner
7 Mossy Stone Brick
6 Mossy Stone Brick Monster Egg
6 Birch Log
6 Ice
5 Bookshelf
5 Brown Mushroom
5 Iron Bar
4 Inside Mushroom Block
4 Crafting Table
4 Carrot Crop (First, Second, and Last Stage)
4 Potato Crop (First, Second, and Last Stage)
4 Wheat Crop (First and Last Stage)
4 Pumpkin
4 Coarse Dirt
4 Dirt
4 Podzol Side
4 Dry Farmland
4 Moist Farmland
4 Grass Side
4 Grass Path Side
4 Snowy Grass Side
4 Mycelium Side
4 Acacia Planks
4 Acacia Fence
4 Acacia Fence Gate
4 Acacia Slab
4 Acacia Stairs
4 Dark Oak Planks
4 Dark Oak Fence
4 Dark Oak Fence Gate
4 Dark Oak Slab
4 Dark Oak Stairs
4 Birch Planks
4 Birch Fence
4 Birch Fence Gate
4 Birch Slab
4 Birch Stairs
4 Jungle Planks
4 Jungle Fence
4 Jungle Fence Gate
4 Jungle Slab
4 Jungle Stairs
4 Jungle Log
4 Oak Planks
4 Oak Fence
4 Oak Fence Gate
4 Oak Slab
4 Oak Stairs
4 Spruce Planks
4 Spruce Fence
4 Spruce Fence Gate
4 Spruce Slab
4 Spruce Stairs
4 Wooden Button
4 Wooden Pressure Plate
4 Chiseled Sandstone
4 Flat Rail
4 Tnt
4 Red Mushroom Block
4 Red Nether Brick
4 Nether Brick
4 Nether Wart Block
4 Nether Brick Stairs
4 Nether Brick Slabs
4 Nether Brick Fence
4 Andesite
4 Podzol Top
4 Grass Top
4 Grass Path Top
4 Mycelium Top
4 Sand
4 Red Sand
4 Black Concrete Powder
4 Blue Concrete Powder
4 Brown Concrete Powder
4 Cyan Concrete Powder
4 Gray Concrete Powder
4 Green Concrete Powder
4 Light Blue Concrete Powder
4 Lime Concrete Powder
4 Magenta Concrete Powder
4 Orange Concrete Powder
4 Pink Concrete Powder
4 Red Concrete Powder
4 Silver Concrete Powder
4 White Concrete Powder
4 Yellow Concrete Powder
4 Clay
3 Stone Brick
3 Stone Brick Stairs
3 Stone Brick Slabs
3 Cracked Stonebrick
3 Stone Monster Egg
3 Stone Brick Monster Egg
3 Cracked Stone Brick Monster Egg
3 Stone
3 Stone Button
3 Stone Pressure Plate
3 Red Mushroom
3 Beetroot (First and Last Stage)
3 Lit Pumpkin
3 Reeds
3 Oak Sapling
3 Spruce Sapling
3 Birch Sapling
3 Jungle Sapling
3 Acacia Sapling
3 Dark Oak Sapling
3 Nether Quartz Ore
3 Curved Rail
3 Emerald Ore
3 End Brick
3 Portal
2 Double Paeonia Top
2 Double Paeonia Bottom
2 Cactus Top
2 Poppy
2 Cactus
2 Double Tall Grass
2 Double Rose
2 Fern
2 Nether Wart Crop (First, Second, and Last Stage)
2 Double Syringa Top
2 Double Syringa Bottom
2 Double Rose Top
2 Double Rose Bottom
1 Web
1 Vine
1 Diorite
1 Granite
1 Hey Block
1 Chiseled Red Sandstone
*All saplings visibly grow
*Random Grass Path Rotations
*Random Podzol Rotations
*Random Mycelium Rotations
*Random Coarse Dirt Rotations
*Random Gravel Rotations
*Random Clay Rotations
*Random Soulsand Rotations
*Random Glowstone Rotations
*Random Granite Rotations
*Random Diorite Rotations
*Random Andesite Rotations
*Random Cobweb Rotations
*Random Slime Block Rotations
*Random Obsidian Rotations
*Random Sponge Rotations
*Random Wet Sponge Rotations
*Random End Stone Rotations
*Random Snow Rotations
*Random Snow Layer Rotations
Send in your suggestions
If you want to help the pack but are no good with making textures, no problem! If you have an idea of what you would like to see in the pack you can give a detailed suggestion and I may add it to the pack.
If you love my works, maybe consider donating some snack money so I can continue making things for a long time to come? Any and all donations are greatly appreciated, even just downloading the pack and giving me feedback motivates me to continue updating my works 🙂
If you’re interested in donating, you can do so via Ko-fi
Thank you to the following people for their donations!
[First donor] VasilisGR
[Top donor] gtxVel
[Resent donor] Carly Molyneux
You may freely use any file in this project for your own projects & purposes without asking me. All I ask is that you give credit with a link to this projects page.
Please do not reupload this project elsewhere without your own changes and project name.
• Do you plan on making a 32×32 version of this pack in the future?
— I have already made a 32×32 version of this pack in the style of Faithful. You can download it here.
• Will you be adding alternative mob textures to the pack? Like rooster variants for chickens, or muddy pigs?
— I have no plans to add random mobs to this pack since its theme is all about blocks. Perhaps for a future project, but at this time I’d like to focus on my current packs.
• I made some textures and want to send them to you! How do I do that?
— You can start by downloading a zipping program like 7Zip, or Winrar. Once you have one of those installed, make a new zip file and put all the textures you want to send to me in it. Then upload it to a file hosting site such as Mediafire, or Dropbox. Once your upload is complete, copy your download files url and send it to me though a private message with some info on what you sent me. Please note that I do take a look at everyone’s textures and do take them into consideration. Some may not be added, some might be added throughout later versions of the pack, and sometimes they may be removed from the pack.
• I really enjoy using this pack, what can I do to show my support?
— I’m glad you like using my pack! There are a few things you could do to show your support such as;
Keeping up with the latest version of the pack weather it be downloading, commenting, or general feedback.
Submitting some of your own textures to the pack for them to be possibly included in future versions of the pack.
Commenting some suggestions on what you like, don’t like, or would like to see in the pack.
Credit | Contributors:cake_zero, AbanddonAnt, GoodMiner, Basilt, DraminOver, Skjold, MBCMechachu, Rasct |
Progress | 100% complete |
Game Version | Minecraft 1.12 |
Resolution | 16x |
Tags |