I've been trying to make my own vines, and I've sourced the JSON files from the blockstates and models folders of the client-extra.jar. I have each vine-related JSON file from client-extra/assets/minecraft/blockstates, client-extra/assets/minecraft/models/block, and client-extra/assets.minecraft/models/item, and I've named it in the en_us.json file. Each vine related JSON file from the original client-extra.jar is pointing to my own textures, and has the correct modid as well. I have my correct texture, however when I'm in game, my custom vines do not appear with the texture, and do not behave like vines either. They behave like any other block, and are not specific about which faces or block they can be placed on. It also doesn't seem to have any properties, while normal vines have properties for the direction they are facing.
I've set the Material property to Material.VINE when registering the block in my main class, but that does not fix anything.
Code:
following JSON files from assets/mmqol/blockstates
poison_ivy.json
{
"variants": {
"east=false,north=false,south=false,up=false,west=false": { "model": "mmqol:block/poison_ivy_1" },
"east=false,north=false,south=true,up=false,west=false": { "model": "mmqol:block/poison_ivy_1" },
"east=false,north=false,south=false,up=false,west=true": { "model": "mmqol:block/poison_ivy_1", "y": 90 },
"east=false,north=true,south=false,up=false,west=false": { "model": "mmqol:block/poison_ivy_1", "y": 180 },
"east=true,north=false,south=false,up=false,west=false": { "model": "mmqol:block/poison_ivy_1", "y": 270 },
"east=true,north=true,south=false,up=false,west=false": { "model": "mmqol:block/poison_ivy_2" },
"east=true,north=false,south=true,up=false,west=false": { "model": "mmqol:block/poison_ivy_2", "y": 90 },
"east=false,north=false,south=true,up=false,west=true": { "model": "mmqol:block/poison_ivy_2", "y": 180 },
"east=false,north=true,south=false,up=false,west=true": { "model": "mmqol:block/poison_ivy_2", "y": 270 },
"east=true,north=false,south=false,up=false,west=true": { "model": "mmqol:block/poison_ivy_2_opposite" },
"east=false,north=true,south=true,up=false,west=false": { "model": "mmqol:block/poison_ivy_2_opposite", "y": 90 },
"east=true,north=true,south=true,up=false,west=false": { "model": "mmqol:block/poison_ivy_3" },
"east=true,north=false,south=true,up=false,west=true": { "model": "mmqol:block/poison_ivy_3", "y": 90 },
"east=false,north=true,south=true,up=false,west=true": { "model": "mmqol:block/poison_ivy_3", "y": 180 },
"east=true,north=true,south=false,up=false,west=true": { "model": "mmqol:block/poison_ivy_3", "y": 270 },
"east=true,north=true,south=true,up=false,west=true": { "model": "mmqol:block/poison_ivy_4" },
"east=false,north=false,south=false,up=true,west=false": { "model": "mmqol:block/poison_ivy_u" },
"east=false,north=false,south=true,up=true,west=false": { "model": "mmqol:block/poison_ivy_1u" },
"east=false,north=false,south=false,up=true,west=true": { "model": "mmqol:block/poison_ivy_1u", "y": 90 },
"east=false,north=true,south=false,up=true,west=false": { "model": "mmqol:block/poison_ivy_1u", "y": 180 },
"east=true,north=false,south=false,up=true,west=false": { "model": "mmqol:block/poison_ivy_1u", "y": 270 },
"east=true,north=true,south=false,up=true,west=false": { "model": "mmqol:block/poison_ivy_2u" },
"east=true,north=false,south=true,up=true,west=false": { "model": "mmqol:block/poison_ivy_2u", "y": 90 },
"east=false,north=false,south=true,up=true,west=true": { "model": "mmqol:block/poison_ivy_2u", "y": 180 },
"east=false,north=true,south=false,up=true,west=true": { "model": "mmqol:block/poison_ivy_2u", "y": 270 },
"east=true,north=false,south=false,up=true,west=true": { "model": "mmqol:block/poison_ivy_2u_opposite" },
"east=false,north=true,south=true,up=true,west=false": { "model": "mmqol:block/poison_ivy_2u_opposite", "y": 90 },
"east=true,north=true,south=true,up=true,west=false": { "model": "mmqol:block/poison_ivy_3u" },
"east=true,north=false,south=true,up=true,west=true": { "model": "mmqol:block/poison_ivy_3u", "y": 90 },
"east=false,north=true,south=true,up=true,west=true": { "model": "mmqol:block/poison_ivy_3u", "y": 180 },
"east=true,north=true,south=false,up=true,west=true": { "model": "mmqol:block/poison_ivy_3u", "y": 270 },
"east=true,north=true,south=true,up=true,west=true": { "model": "mmqol:block/poison_ivy_4u" }
}
}
following JSON files from models/block
poison_ivy_1.json
{
"ambientocclusion": false,
"textures": {
"particle": "mmqol:block/poison_ivy",
"ivy": "mmqol:block/poison_ivy"
},
"elements": [
{ "from": [ 0, 0, 15.2 ],
"to": [ 16, 16, 15.2 ],
"shade": false,
"faces": {
"north": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 },
"south": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 }
}
}
]
}
poison_ivy_1u.json
{
"ambientocclusion": false,
"textures": {
"particle": "mmqol:block/poison_ivy",
"ivy": "mmqol:block/poison_ivy"
},
"elements": [
{ "from": [ 0, 15.2, 0 ],
"to": [ 16, 15.2, 16 ],
"shade": false,
"faces": {
"down": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 },
"up": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 }
}
},
{ "from": [ 0, 0, 15.2 ],
"to": [ 16, 16, 15.2 ],
"shade": false,
"faces": {
"north": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 },
"south": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 }
}
}
]
}
poison_ivy_2.json
{
"ambientocclusion": false,
"textures": {
"particle": "mmqol:block/poison_ivy",
"ivy": "mmqol:block/poison_ivy"
},
"elements": [
{ "from": [ 0, 0, 0.8 ],
"to": [ 16, 16, 0.8 ],
"shade": false,
"faces": {
"north": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 },
"south": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 }
}
},
{ "from": [ 15.2, 0, 0 ],
"to": [ 15.2, 16, 16 ],
"shade": false,
"faces": {
"west": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 },
"east": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 }
}
}
]
}
poison_ivy_2_opposite.json
{
"ambientocclusion": false,
"textures": {
"particle": "mmqol:block/poison_ivy",
"ivy": "mmqol:block/poison_ivy"
},
"elements": [
{ "from": [ 15.2, 0, 0 ],
"to": [ 15.2, 16, 16 ],
"shade": false,
"faces": {
"west": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 },
"east": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 }
}
},
{ "from": [ 0.8, 0, 0 ],
"to": [ 0.8, 16, 16 ],
"shade": false,
"faces": {
"west": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 },
"east": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 }
}
}
]
}
poison_ivy_2_u.json
{
"ambientocclusion": false,
"textures": {
"particle": "mmqol:block/poison_ivy",
"ivy": "mmqol:block/poison_ivy"
},
"elements": [
{ "from": [ 0, 15.2, 0 ],
"to": [ 16, 15.2, 16 ],
"shade": false,
"faces": {
"down": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 },
"up": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 }
}
},
{ "from": [ 0, 0, 0.8 ],
"to": [ 16, 16, 0.8 ],
"shade": false,
"faces": {
"north": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 },
"south": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 }
}
},
{ "from": [ 15.2, 0, 0 ],
"to": [ 15.2, 16, 16 ],
"shade": false,
"faces": {
"west": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 },
"east": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 }
}
}
]
}
poison_ivy_2_u_opposite.json
{
"ambientocclusion": false,
"textures": {
"particle": "mmqol:block/poison_ivy",
"ivy": "mmqol:block/poison_ivy"
},
"elements": [
{ "from": [ 0, 15.2, 0 ],
"to": [ 16, 15.2, 16 ],
"shade": false,
"faces": {
"down": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 },
"up": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 }
}
},
{ "from": [ 15.2, 0, 0 ],
"to": [ 15.2, 16, 16 ],
"shade": false,
"faces": {
"west": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 },
"east": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 }
}
},
{ "from": [ 0.8, 0, 0 ],
"to": [ 0.8, 16, 16 ],
"shade": false,
"faces": {
"west": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 },
"east": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 }
}
}
]
}
poison_ivy_3.json
{
"ambientocclusion": false,
"textures": {
"particle": "mmqol:block/poison_ivy",
"ivy": "mmqol:block/poison_ivy"
},
"elements": [
{ "from": [ 15.2, 0, 0 ],
"to": [ 15.2, 16, 16 ],
"shade": false,
"faces": {
"west": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 },
"east": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 }
}
},
{ "from": [ 0, 0, 15.2 ],
"to": [ 16, 16, 15.2 ],
"shade": false,
"faces": {
"north": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 },
"south": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 }
}
},
{ "from": [ 0, 0, 0.8 ],
"to": [ 16, 16, 0.8 ],
"shade": false,
"faces": {
"north": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 },
"south": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 }
}
}
]
}
poison_ivy_3_u.json
{
"ambientocclusion": false,
"textures": {
"particle": "mmqol:block/poison_ivy",
"ivy": "mmqol:block/poison_ivy"
},
"elements": [
{ "from": [ 0, 15.2, 0 ],
"to": [ 16, 15.2, 16 ],
"shade": false,
"faces": {
"down": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 },
"up": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 }
}
},
{ "from": [ 15.2, 0, 0 ],
"to": [ 15.2, 16, 16 ],
"shade": false,
"faces": {
"west": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 },
"east": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 }
}
},
{ "from": [ 0, 0, 15.2 ],
"to": [ 16, 16, 15.2 ],
"shade": false,
"faces": {
"north": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 },
"south": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 }
}
},
{ "from": [ 0, 0, 0.8 ],
"to": [ 16, 16, 0.8 ],
"shade": false,
"faces": {
"north": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 },
"south": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 }
}
}
]
}
poison_ivy_4.json
{
"ambientocclusion": false,
"textures": {
"particle": "mmqol:block/poison_ivy",
"ivy": "mmqol:block/poison_ivy"
},
"elements": [
{ "from": [ 0.8, 0, 0 ],
"to": [ 0.8, 16, 16 ],
"shade": false,
"faces": {
"west": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 },
"east": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 }
}
},
{ "from": [ 15.2, 0, 0 ],
"to": [ 15.2, 16, 16 ],
"shade": false,
"faces": {
"west": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 },
"east": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 }
}
},
{ "from": [ 0, 0, 15.2 ],
"to": [ 16, 16, 15.2 ],
"shade": false,
"faces": {
"north": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 },
"south": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 }
}
},
{ "from": [ 0, 0, 0.8 ],
"to": [ 16, 16, 0.8 ],
"shade": false,
"faces": {
"north": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 },
"south": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 }
}
}
]
}
poison_ivy_4_u.json
{
"ambientocclusion": false,
"textures": {
"particle": "mmqol:block/poison_ivy",
"ivy": "mmqol:block/poison_ivy"
},
"elements": [
{ "from": [ 0, 15.2, 0 ],
"to": [ 16, 15.2, 16 ],
"shade": false,
"faces": {
"down": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 },
"up": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 }
}
},
{ "from": [ 0.8, 0, 0 ],
"to": [ 0.8, 16, 16 ],
"shade": false,
"faces": {
"west": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 },
"east": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 }
}
},
{ "from": [ 15.2, 0, 0 ],
"to": [ 15.2, 16, 16 ],
"shade": false,
"faces": {
"west": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 },
"east": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 }
}
},
{ "from": [ 0, 0, 15.2 ],
"to": [ 16, 16, 15.2 ],
"shade": false,
"faces": {
"north": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 },
"south": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 }
}
},
{ "from": [ 0, 0, 0.8 ],
"to": [ 16, 16, 0.8 ],
"shade": false,
"faces": {
"north": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 },
"south": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 }
}
}
]
}
poison_ivy_u.json
{
"ambientocclusion": false,
"textures": {
"particle": "mmqol:block/poison_ivy",
"ivy": "mmqol:block/poison_ivy"
},
"elements": [
{ "from": [ 0, 15.2, 0 ],
"to": [ 16, 15.2, 16 ],
"shade": false,
"faces": {
"down": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 },
"up": { "uv": [ 0, 0, 16, 16 ], "texture": "#ivy", "tintindex": 0 }
}
}
]
}
following JSON files from models/item
poison_ivy.json
{
"parent": "item/generated",
"textures": {
"layer0": "mmqol:item/poison_ivy"
}
}
my texture is titled "poison_ivy.png" and is in assets/mmqol/textures/block
from BlockList.java
public static Block poison_ivy;
from ItemList.java
public static Item poison_ivy;
from MMyronsQoL.java (my main class)
@Mod.EventBusSubscriber(bus=Mod.EventBusSubscriber.Bus.MOD)
public static class RegistryEvents{
@SubscribeEvent
public static void registerItems(final RegistryEvent.Register<Item> event) {
event.getRegistry().registerAll(
ItemList.poison_ivy = new ItemBlock(BlockList.poison_ivy, new Item.Properties().group(ItemGroup.DECORATIONS)).setRegistryName(BlockList.poison_ivy.getRegistryName())
);
logger.info("Items registered");
}
@SubscribeEvent
public static void registerBlocks(final RegistryEvent.Register<Block> event) {
event.getRegistry().registerAll(
BlockList.poison_ivy = new Block(Block.Properties.create(Material.VINE).hardnessAndResistance(0.2f, 0.1f).sound(SoundType.PLANT).doesNotBlockMovement().variableOpacity()).setRegistryName(getLocation("poison_ivy"))
);
logger.info("Blocks registered");
}
private static ResourceLocation getLocation(String name) {
return new ResourceLocation(modid, name);
}
}
If there is anything I'm missing that might help someone figure out this mess, please let me know!
Thanks