Removed blockstates patterns

This commit is contained in:
Aleksey 2021-05-18 17:02:28 +03:00
parent 744fe40a00
commit 5dc76a37f2
47 changed files with 60 additions and 650 deletions

View file

@ -1,13 +1,8 @@
package ru.betterend.blocks; package ru.betterend.blocks;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.state.StateDefinition;
import net.minecraft.world.level.block.state.properties.IntegerProperty; import net.minecraft.world.level.block.state.properties.IntegerProperty;
import ru.betterend.blocks.basis.EndAnvilBlock; import ru.betterend.blocks.basis.EndAnvilBlock;
import ru.betterend.item.material.EndToolMaterial; import ru.betterend.item.material.EndToolMaterial;
import ru.betterend.client.models.Patterns;
import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndBlocks;
public class AeterniumAnvil extends EndAnvilBlock { public class AeterniumAnvil extends EndAnvilBlock {
@ -22,8 +17,4 @@ public class AeterniumAnvil extends EndAnvilBlock {
return DESTRUCTION_LONG; return DESTRUCTION_LONG;
} }
@Override
public ResourceLocation statePatternId() {
return Patterns.STATE_ANVIL_LONG;
}
} }

View file

@ -1,6 +1,5 @@
package ru.betterend.blocks; package ru.betterend.blocks;
import java.io.Reader;
import java.util.Map; import java.util.Map;
import java.util.Optional; import java.util.Optional;
@ -53,13 +52,7 @@ public class BulbVineLanternBlock extends EndLanternBlock implements IRenderType
public ERenderLayer getRenderLayer() { public ERenderLayer getRenderLayer() {
return ERenderLayer.CUTOUT; return ERenderLayer.CUTOUT;
} }
@Override
public String getStatesPattern(Reader data) {
ResourceLocation blockId = Registry.BLOCK.getKey(this);
return Patterns.createJson(data, blockId.getPath(), blockId.getPath());
}
@Override @Override
public Optional<String> getModelString(String block) { public Optional<String> getModelString(String block) {
ResourceLocation blockId = Registry.BLOCK.getKey(this); ResourceLocation blockId = Registry.BLOCK.getKey(this);
@ -83,9 +76,5 @@ public class BulbVineLanternBlock extends EndLanternBlock implements IRenderType
protected String getGlowTexture() { protected String getGlowTexture() {
return "bulb_vine_lantern_bulb"; return "bulb_vine_lantern_bulb";
} }
@Override
public ResourceLocation statePatternId() {
return Patterns.STATE_BULB_LANTERN;
}
} }

View file

@ -1,6 +1,5 @@
package ru.betterend.blocks; package ru.betterend.blocks;
import java.io.Reader;
import java.util.EnumMap; import java.util.EnumMap;
import java.util.Optional; import java.util.Optional;
@ -39,13 +38,7 @@ public class ChandelierBlock extends AttachedBlock implements IRenderTypeable, B
public VoxelShape getShape(BlockState state, BlockGetter view, BlockPos pos, CollisionContext ePos) { public VoxelShape getShape(BlockState state, BlockGetter view, BlockPos pos, CollisionContext ePos) {
return BOUNDING_SHAPES.get(state.getValue(FACING)); return BOUNDING_SHAPES.get(state.getValue(FACING));
} }
@Override
public String getStatesPattern(Reader data) {
ResourceLocation blockId = Registry.BLOCK.getKey(this);
return Patterns.createJson(data, blockId.getPath(), blockId.getPath());
}
@Override @Override
public Optional<String> getModelString(String block) { public Optional<String> getModelString(String block) {
ResourceLocation blockId = Registry.BLOCK.getKey(this); ResourceLocation blockId = Registry.BLOCK.getKey(this);
@ -62,12 +55,7 @@ public class ChandelierBlock extends AttachedBlock implements IRenderTypeable, B
return Patterns.createJson(Patterns.BLOCK_CHANDELIER_FLOOR, blockId.getPath()); return Patterns.createJson(Patterns.BLOCK_CHANDELIER_FLOOR, blockId.getPath());
} }
} }
@Override
public ResourceLocation statePatternId() {
return Patterns.STATE_CHANDELIER;
}
static { static {
BOUNDING_SHAPES.put(Direction.UP, Block.box(5, 0, 5, 11, 13, 11)); BOUNDING_SHAPES.put(Direction.UP, Block.box(5, 0, 5, 11, 13, 11));
BOUNDING_SHAPES.put(Direction.DOWN, Block.box(5, 3, 5, 11, 16, 11)); BOUNDING_SHAPES.put(Direction.DOWN, Block.box(5, 3, 5, 11, 16, 11));

View file

@ -1,6 +1,5 @@
package ru.betterend.blocks; package ru.betterend.blocks;
import java.io.Reader;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
@ -86,21 +85,11 @@ public class EmeraldIceBlock extends HalfTransparentBlock implements IRenderType
return Collections.emptyList(); return Collections.emptyList();
} }
} }
@Override
public String getStatesPattern(Reader data) {
String block = Registry.BLOCK.getKey(this).getPath();
return Patterns.createJson(data, block, block);
}
@Override @Override
public Optional<String> getModelString(String block) { public Optional<String> getModelString(String block) {
ResourceLocation blockId = Registry.BLOCK.getKey(this); ResourceLocation blockId = Registry.BLOCK.getKey(this);
return Patterns.createJson(Patterns.BLOCK_BASE, blockId.getPath(), block); return Patterns.createJson(Patterns.BLOCK_BASE, blockId.getPath(), block);
} }
@Override
public ResourceLocation statePatternId() {
return Patterns.STATE_SIMPLE;
}
} }

View file

@ -10,7 +10,6 @@ import com.google.common.collect.Maps;
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.core.Registry; import net.minecraft.core.Registry;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.enchantment.EnchantmentHelper; import net.minecraft.world.item.enchantment.EnchantmentHelper;
import net.minecraft.world.item.enchantment.Enchantments; import net.minecraft.world.item.enchantment.Enchantments;
@ -63,9 +62,5 @@ public class EndPathBlock extends BlockBaseNotFull {
map.put("%side%", name.replace("_path", "") + "_side"); map.put("%side%", name.replace("_path", "") + "_side");
return Patterns.createJson(Patterns.BLOCK_PATH, map); return Patterns.createJson(Patterns.BLOCK_PATH, map);
} }
@Override
public ResourceLocation statePatternId() {
return Patterns.STATE_ROTATED_TOP;
}
} }

View file

@ -9,7 +9,6 @@ import net.fabricmc.fabric.api.tool.attribute.v1.FabricToolTags;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction; import net.minecraft.core.Direction;
import net.minecraft.core.Registry; import net.minecraft.core.Registry;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerLevel;
import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.level.ServerPlayer;
import net.minecraft.sounds.SoundEvents; import net.minecraft.sounds.SoundEvents;
@ -100,9 +99,5 @@ public class EndTerrainBlock extends BlockBase {
map.put("%bottom%", "minecraft:block/end_stone"); map.put("%bottom%", "minecraft:block/end_stone");
return Patterns.createJson(Patterns.BLOCK_TOP_SIDE_BOTTOM, map); return Patterns.createJson(Patterns.BLOCK_TOP_SIDE_BOTTOM, map);
} }
@Override
public ResourceLocation statePatternId() {
return Patterns.STATE_ROTATED_TOP;
}
} }

View file

@ -1,12 +1,10 @@
package ru.betterend.blocks; package ru.betterend.blocks;
import java.io.Reader;
import java.util.Optional; import java.util.Optional;
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
import net.minecraft.client.color.block.BlockColor; import net.minecraft.client.color.block.BlockColor;
import net.minecraft.client.color.item.ItemColor; import net.minecraft.client.color.item.ItemColor;
import net.minecraft.resources.ResourceLocation;
import ru.betterend.interfaces.IColorProvider; import ru.betterend.interfaces.IColorProvider;
import ru.betterend.client.models.Patterns; import ru.betterend.client.models.Patterns;
import ru.betterend.util.BlocksHelper; import ru.betterend.util.BlocksHelper;
@ -29,21 +27,11 @@ public class HydraluxPetalColoredBlock extends HydraluxPetalBlock implements ICo
return BlocksHelper.getBlockColor(this); return BlocksHelper.getBlockColor(this);
}; };
} }
@Override
public String getStatesPattern(Reader data) {
String path = "betterend:block/block_petal_colored";
return Patterns.createJson(data, path, path);
}
@Override @Override
public Optional<String> getModelString(String block) { public Optional<String> getModelString(String block) {
String path = "betterend:block/block_petal_colored"; String path = "betterend:block/block_petal_colored";
return Patterns.createJson(Patterns.BLOCK_PETAL_COLORED, path, path); return Patterns.createJson(Patterns.BLOCK_PETAL_COLORED, path, path);
} }
@Override
public ResourceLocation statePatternId() {
return Patterns.STATE_DIRECT;
}
} }

View file

@ -1,6 +1,5 @@
package ru.betterend.blocks; package ru.betterend.blocks;
import java.io.Reader;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
@ -9,9 +8,7 @@ import com.google.common.collect.Lists;
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
import net.minecraft.client.color.block.BlockColor; import net.minecraft.client.color.block.BlockColor;
import net.minecraft.client.color.item.ItemColor; import net.minecraft.client.color.item.ItemColor;
import net.minecraft.core.Registry;
import net.minecraft.core.Vec3i; import net.minecraft.core.Vec3i;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth; import net.minecraft.util.Mth;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.context.BlockPlaceContext; import net.minecraft.world.item.context.BlockPlaceContext;
@ -66,23 +63,12 @@ public class JellyshroomCapBlock extends SlimeBlock implements IRenderTypeable,
public List<ItemStack> getDrops(BlockState state, LootContext.Builder builder) { public List<ItemStack> getDrops(BlockState state, LootContext.Builder builder) {
return Lists.newArrayList(new ItemStack(this)); return Lists.newArrayList(new ItemStack(this));
} }
@Override
public String getStatesPattern(Reader data) {
String block = Registry.BLOCK.getKey(this).getPath();
return Patterns.createJson(data, block, block);
}
@Override @Override
public Optional<String> getModelString(String block) { public Optional<String> getModelString(String block) {
return Patterns.createJson(Patterns.BLOCK_COLORED, "jellyshroom_cap"); return Patterns.createJson(Patterns.BLOCK_COLORED, "jellyshroom_cap");
} }
@Override
public ResourceLocation statePatternId() {
return Patterns.STATE_SIMPLE;
}
@Override @Override
public BlockColor getProvider() { public BlockColor getProvider() {
return (state, world, pos, tintIndex) -> { return (state, world, pos, tintIndex) -> {

View file

@ -1,6 +1,5 @@
package ru.betterend.blocks; package ru.betterend.blocks;
import java.io.Reader;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
@ -67,23 +66,12 @@ public class UmbrellaTreeMembraneBlock extends SlimeBlock implements IRenderType
return MHelper.RANDOM.nextInt(4) == 0 ? Lists.newArrayList(new ItemStack(EndBlocks.UMBRELLA_TREE_SAPLING)) : Collections.emptyList(); return MHelper.RANDOM.nextInt(4) == 0 ? Lists.newArrayList(new ItemStack(EndBlocks.UMBRELLA_TREE_SAPLING)) : Collections.emptyList();
} }
} }
@Override
public String getStatesPattern(Reader data) {
String block = Registry.BLOCK.getKey(this).getPath();
return Patterns.createJson(data, block, block);
}
@Override @Override
public Optional<String> getModelString(String block) { public Optional<String> getModelString(String block) {
ResourceLocation blockId = Registry.BLOCK.getKey(this); ResourceLocation blockId = Registry.BLOCK.getKey(this);
return Patterns.createJson(Patterns.BLOCK_BASE, blockId.getPath(), block); return Patterns.createJson(Patterns.BLOCK_BASE, blockId.getPath(), block);
} }
@Override
public ResourceLocation statePatternId() {
return Patterns.STATE_SIMPLE;
}
@Override @Override
public boolean propagatesSkylightDown(BlockState state, BlockGetter world, BlockPos pos) { public boolean propagatesSkylightDown(BlockState state, BlockGetter world, BlockPos pos) {

View file

@ -1,6 +1,5 @@
package ru.betterend.blocks.basis; package ru.betterend.blocks.basis;
import java.io.Reader;
import java.util.Optional; import java.util.Optional;
import net.minecraft.core.Registry; import net.minecraft.core.Registry;
@ -11,12 +10,6 @@ public class BarkBlock extends EndPillarBlock {
public BarkBlock(Properties settings) { public BarkBlock(Properties settings) {
super(settings); super(settings);
} }
@Override
public String getStatesPattern(Reader data) {
ResourceLocation blockId = Registry.BLOCK.getKey(this);
return Patterns.createJson(data, getName(blockId), blockId.getPath());
}
@Override @Override
protected Optional<String> createBlockPattern(ResourceLocation blockId) { protected Optional<String> createBlockPattern(ResourceLocation blockId) {

View file

@ -1,6 +1,5 @@
package ru.betterend.blocks.basis; package ru.betterend.blocks.basis;
import java.io.Reader;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
@ -25,12 +24,6 @@ public class BlockBase extends Block implements BlockModelProvider {
return Collections.singletonList(new ItemStack(this)); return Collections.singletonList(new ItemStack(this));
} }
@Override
public String getStatesPattern(Reader data) {
String block = Registry.BLOCK.getKey(this).getPath();
return Patterns.createJson(data, block, block);
}
@Override @Override
public Optional<String> getModelString(String block) { public Optional<String> getModelString(String block) {
ResourceLocation blockId = Registry.BLOCK.getKey(this); ResourceLocation blockId = Registry.BLOCK.getKey(this);
@ -42,8 +35,4 @@ public class BlockBase extends Block implements BlockModelProvider {
return getBlockModel(blockId, defaultBlockState()); return getBlockModel(blockId, defaultBlockState());
} }
@Override
public ResourceLocation statePatternId() {
return Patterns.STATE_SIMPLE;
}
} }

View file

@ -1,6 +1,5 @@
package ru.betterend.blocks.basis; package ru.betterend.blocks.basis;
import java.io.Reader;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -58,13 +57,7 @@ public class EndAnvilBlock extends AnvilBlock implements BlockModelProvider {
stack.getOrCreateTag().putInt("level", level); stack.getOrCreateTag().putInt("level", level);
return Collections.singletonList(stack); return Collections.singletonList(stack);
} }
@Override
public String getStatesPattern(Reader data) {
ResourceLocation blockId = Registry.BLOCK.getKey(this);
return Patterns.createJson(data, blockId.getPath(), blockId.getPath());
}
@Override @Override
public Optional<String> getModelString(String block) { public Optional<String> getModelString(String block) {
ResourceLocation blockId = Registry.BLOCK.getKey(this); ResourceLocation blockId = Registry.BLOCK.getKey(this);
@ -81,11 +74,6 @@ public class EndAnvilBlock extends AnvilBlock implements BlockModelProvider {
char last = block.charAt(block.length() - 1); char last = block.charAt(block.length() - 1);
return blockId.getPath() + "_top_" + last; return blockId.getPath() + "_top_" + last;
} }
@Override
public ResourceLocation statePatternId() {
return Patterns.STATE_ANVIL;
}
@Override @Override
public BlockModel getModel(ResourceLocation blockId) { public BlockModel getModel(ResourceLocation blockId) {

View file

@ -1,6 +1,5 @@
package ru.betterend.blocks.basis; package ru.betterend.blocks.basis;
import java.io.Reader;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Optional; import java.util.Optional;
@ -93,13 +92,7 @@ public class EndBarrelBlock extends BarrelBlock implements BlockModelProvider {
} }
} }
} }
@Override
public String getStatesPattern(Reader data) {
String block = Registry.BLOCK.getKey(this).getPath();
return Patterns.createJson(data, block, block);
}
@Override @Override
public Optional<String> getModelString(String block) { public Optional<String> getModelString(String block) {
String texture = Registry.BLOCK.getKey(this).getPath(); String texture = Registry.BLOCK.getKey(this).getPath();
@ -114,11 +107,6 @@ public class EndBarrelBlock extends BarrelBlock implements BlockModelProvider {
return getBlockModel(blockId, defaultBlockState()); return getBlockModel(blockId, defaultBlockState());
} }
@Override
public ResourceLocation statePatternId() {
return Patterns.STATE_BARREL;
}
@Override @Override
public BlockModel getBlockModel(ResourceLocation blockId, BlockState blockState) { public BlockModel getBlockModel(ResourceLocation blockId, BlockState blockState) {
String texture = blockId.getPath(); String texture = blockId.getPath();

View file

@ -1,6 +1,5 @@
package ru.betterend.blocks.basis; package ru.betterend.blocks.basis;
import java.io.Reader;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
@ -35,23 +34,12 @@ public class EndBookshelfBlock extends BlockBase {
} }
return Collections.singletonList(new ItemStack(Items.BOOK, 3)); return Collections.singletonList(new ItemStack(Items.BOOK, 3));
} }
@Override
public ResourceLocation statePatternId() {
return Patterns.STATE_SIMPLE;
}
@Override @Override
public Optional<String> getModelString(String block) { public Optional<String> getModelString(String block) {
ResourceLocation blockId = Registry.BLOCK.getKey(this); ResourceLocation blockId = Registry.BLOCK.getKey(this);
return Patterns.createJson(Patterns.BLOCK_BOOKSHELF, getName(blockId), blockId.getPath()); return Patterns.createJson(Patterns.BLOCK_BOOKSHELF, getName(blockId), blockId.getPath());
} }
@Override
public String getStatesPattern(Reader data) {
ResourceLocation blockId = Registry.BLOCK.getKey(this);
return Patterns.createJson(data, getName(blockId), blockId.getPath());
}
@Override @Override
public BlockModel getBlockModel(ResourceLocation blockId, BlockState blockState) { public BlockModel getBlockModel(ResourceLocation blockId, BlockState blockState) {

View file

@ -1,6 +1,5 @@
package ru.betterend.blocks.basis; package ru.betterend.blocks.basis;
import java.io.Reader;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -35,13 +34,7 @@ public class EndChainBlock extends ChainBlock implements BlockModelProvider, IRe
public List<ItemStack> getDrops(BlockState state, LootContext.Builder builder) { public List<ItemStack> getDrops(BlockState state, LootContext.Builder builder) {
return Collections.singletonList(new ItemStack(this)); return Collections.singletonList(new ItemStack(this));
} }
@Override
public String getStatesPattern(Reader data) {
ResourceLocation blockId = Registry.BLOCK.getKey(this);
return Patterns.createJson(data, blockId.getPath(), blockId.getPath());
}
@Override @Override
public Optional<String> getModelString(String block) { public Optional<String> getModelString(String block) {
ResourceLocation blockId = Registry.BLOCK.getKey(this); ResourceLocation blockId = Registry.BLOCK.getKey(this);
@ -56,11 +49,6 @@ public class EndChainBlock extends ChainBlock implements BlockModelProvider, IRe
return ModelProvider.createItemModel(blockId.getPath()); return ModelProvider.createItemModel(blockId.getPath());
} }
@Override
public ResourceLocation statePatternId() {
return Patterns.STATE_CHAIN;
}
@Override @Override
public BlockModel getBlockModel(ResourceLocation blockId, BlockState blockState) { public BlockModel getBlockModel(ResourceLocation blockId, BlockState blockState) {
String name = blockId.getPath(); String name = blockId.getPath();

View file

@ -1,6 +1,5 @@
package ru.betterend.blocks.basis; package ru.betterend.blocks.basis;
import java.io.Reader;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
@ -40,14 +39,7 @@ public class EndChestBlock extends ChestBlock implements BlockModelProvider {
drop.add(new ItemStack(this.asItem())); drop.add(new ItemStack(this.asItem()));
return drop; return drop;
} }
@Override
public String getStatesPattern(Reader data) {
ResourceLocation blockId = Registry.BLOCK.getKey(this);
ResourceLocation parentId = Registry.BLOCK.getKey(parent);
return Patterns.createJson(data, parentId.getPath(), blockId.getPath());
}
@Override @Override
public Optional<String> getModelString(String path) { public Optional<String> getModelString(String path) {
ResourceLocation blockId = Registry.BLOCK.getKey(this); ResourceLocation blockId = Registry.BLOCK.getKey(this);
@ -64,11 +56,6 @@ public class EndChestBlock extends ChestBlock implements BlockModelProvider {
return pattern.map(BlockModel::fromString).orElse(null); return pattern.map(BlockModel::fromString).orElse(null);
} }
@Override
public ResourceLocation statePatternId() {
return Patterns.STATE_SIMPLE;
}
@Override @Override
public BlockModel getBlockModel(ResourceLocation resourceLocation, BlockState blockState) { public BlockModel getBlockModel(ResourceLocation resourceLocation, BlockState blockState) {
ResourceLocation parentId = Registry.BLOCK.getKey(parent); ResourceLocation parentId = Registry.BLOCK.getKey(parent);

View file

@ -1,6 +1,5 @@
package ru.betterend.blocks.basis; package ru.betterend.blocks.basis;
import java.io.Reader;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -29,13 +28,7 @@ public class EndComposterBlock extends ComposterBlock implements BlockModelProvi
public List<ItemStack> getDrops(BlockState state, LootContext.Builder builder) { public List<ItemStack> getDrops(BlockState state, LootContext.Builder builder) {
return Collections.singletonList(new ItemStack(this.asItem())); return Collections.singletonList(new ItemStack(this.asItem()));
} }
@Override
public String getStatesPattern(Reader data) {
String blockId = Registry.BLOCK.getKey(this).getPath();
return Patterns.createJson(data, blockId, blockId);
}
@Override @Override
public Optional<String> getModelString(String block) { public Optional<String> getModelString(String block) {
ResourceLocation blockId = Registry.BLOCK.getKey(this); ResourceLocation blockId = Registry.BLOCK.getKey(this);
@ -48,11 +41,6 @@ public class EndComposterBlock extends ComposterBlock implements BlockModelProvi
return getBlockModel(resourceLocation, defaultBlockState()); return getBlockModel(resourceLocation, defaultBlockState());
} }
@Override
public ResourceLocation statePatternId() {
return Patterns.STATE_COMPOSTER;
}
@Override @Override
public BlockModel getBlockModel(ResourceLocation blockId, BlockState blockState) { public BlockModel getBlockModel(ResourceLocation blockId, BlockState blockState) {
return null; return null;

View file

@ -1,6 +1,5 @@
package ru.betterend.blocks.basis; package ru.betterend.blocks.basis;
import java.io.Reader;
import java.util.Collections; import java.util.Collections;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
@ -27,13 +26,7 @@ public class EndCraftingTableBlock extends CraftingTableBlock implements BlockMo
public List<ItemStack> getDrops(BlockState state, LootContext.Builder builder) { public List<ItemStack> getDrops(BlockState state, LootContext.Builder builder) {
return Collections.singletonList(new ItemStack(this.asItem())); return Collections.singletonList(new ItemStack(this.asItem()));
} }
@Override
public String getStatesPattern(Reader data) {
String blockId = Registry.BLOCK.getKey(this).getPath();
return Patterns.createJson(data, blockId, blockId);
}
@Override @Override
public Optional<String> getModelString(String block) { public Optional<String> getModelString(String block) {
ResourceLocation blockId = Registry.BLOCK.getKey(this); ResourceLocation blockId = Registry.BLOCK.getKey(this);
@ -57,11 +50,6 @@ public class EndCraftingTableBlock extends CraftingTableBlock implements BlockMo
return getBlockModel(resourceLocation, defaultBlockState()); return getBlockModel(resourceLocation, defaultBlockState());
} }
@Override
public ResourceLocation statePatternId() {
return Patterns.STATE_SIMPLE;
}
@Override @Override
public BlockModel getBlockModel(ResourceLocation blockId, BlockState blockState) { public BlockModel getBlockModel(ResourceLocation blockId, BlockState blockState) {
String blockName = blockId.getPath(); String blockName = blockId.getPath();

View file

@ -1,6 +1,5 @@
package ru.betterend.blocks.basis; package ru.betterend.blocks.basis;
import java.io.Reader;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -46,12 +45,6 @@ public class EndDoorBlock extends DoorBlock implements IRenderTypeable, BlockMod
public ERenderLayer getRenderLayer() { public ERenderLayer getRenderLayer() {
return ERenderLayer.CUTOUT; return ERenderLayer.CUTOUT;
} }
@Override
public String getStatesPattern(Reader data) {
String blockId = Registry.BLOCK.getKey(this).getPath();
return Patterns.createJson(data, blockId, blockId);
}
@Override @Override
public Optional<String> getModelString(String block) { public Optional<String> getModelString(String block) {
@ -143,11 +136,6 @@ public class EndDoorBlock extends DoorBlock implements IRenderTypeable, BlockMod
return new MultiVariant(Lists.newArrayList(variant)); return new MultiVariant(Lists.newArrayList(variant));
} }
@Override
public ResourceLocation statePatternId() {
return Patterns.STATE_DOOR;
}
protected DoorType getDoorType(BlockState blockState) { protected DoorType getDoorType(BlockState blockState) {
boolean isHinge = isHinge(blockState.getValue(HINGE), blockState.getValue(OPEN)); boolean isHinge = isHinge(blockState.getValue(HINGE), blockState.getValue(OPEN));
switch (blockState.getValue(HALF)) { switch (blockState.getValue(HALF)) {

View file

@ -1,6 +1,5 @@
package ru.betterend.blocks.basis; package ru.betterend.blocks.basis;
import java.io.Reader;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
@ -28,14 +27,7 @@ public class EndFenceBlock extends FenceBlock implements BlockModelProvider {
public List<ItemStack> getDrops(BlockState state, LootContext.Builder builder) { public List<ItemStack> getDrops(BlockState state, LootContext.Builder builder) {
return Collections.singletonList(new ItemStack(this)); return Collections.singletonList(new ItemStack(this));
} }
@Override
public String getStatesPattern(Reader data) {
ResourceLocation blockId = Registry.BLOCK.getKey(this);
ResourceLocation parentId = Registry.BLOCK.getKey(parent);
return Patterns.createJson(data, parentId.getPath(), blockId.getPath());
}
@Override @Override
public Optional<String> getModelString(String block) { public Optional<String> getModelString(String block) {
ResourceLocation blockId = Registry.BLOCK.getKey(this); ResourceLocation blockId = Registry.BLOCK.getKey(this);
@ -48,9 +40,5 @@ public class EndFenceBlock extends FenceBlock implements BlockModelProvider {
} }
return Patterns.createJson(Patterns.BLOCK_FENCE_POST, parentId.getPath(), blockId.getPath()); return Patterns.createJson(Patterns.BLOCK_FENCE_POST, parentId.getPath(), blockId.getPath());
} }
@Override
public ResourceLocation statePatternId() {
return Patterns.STATE_FENCE;
}
} }

View file

@ -1,6 +1,5 @@
package ru.betterend.blocks.basis; package ru.betterend.blocks.basis;
import java.io.Reader;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Optional; import java.util.Optional;
@ -52,13 +51,7 @@ public class EndFurnaceBlock extends FurnaceBlock implements BlockModelProvider,
player.awardStat(Stats.INTERACT_WITH_FURNACE); player.awardStat(Stats.INTERACT_WITH_FURNACE);
} }
} }
@Override
public String getStatesPattern(Reader data) {
ResourceLocation blockId = Registry.BLOCK.getKey(this);
return Patterns.createJson(data, blockId.getPath(), blockId.getPath());
}
@Override @Override
public Optional<String> getModelString(String block) { public Optional<String> getModelString(String block) {
ResourceLocation blockId = Registry.BLOCK.getKey(this); ResourceLocation blockId = Registry.BLOCK.getKey(this);
@ -75,11 +68,6 @@ public class EndFurnaceBlock extends FurnaceBlock implements BlockModelProvider,
return Patterns.createJson(Patterns.BLOCK_FURNACE, map); return Patterns.createJson(Patterns.BLOCK_FURNACE, map);
} }
} }
@Override
public ResourceLocation statePatternId() {
return Patterns.STATE_FURNACE;
}
@Override @Override
public BlockModel getBlockModel(ResourceLocation blockId, BlockState blockState) { public BlockModel getBlockModel(ResourceLocation blockId, BlockState blockState) {

View file

@ -1,6 +1,5 @@
package ru.betterend.blocks.basis; package ru.betterend.blocks.basis;
import java.io.Reader;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
@ -28,14 +27,7 @@ public class EndGateBlock extends FenceGateBlock implements BlockModelProvider {
public List<ItemStack> getDrops(BlockState state, LootContext.Builder builder) { public List<ItemStack> getDrops(BlockState state, LootContext.Builder builder) {
return Collections.singletonList(new ItemStack(this)); return Collections.singletonList(new ItemStack(this));
} }
@Override
public String getStatesPattern(Reader data) {
ResourceLocation blockId = Registry.BLOCK.getKey(this);
ResourceLocation parentId = Registry.BLOCK.getKey(parent);
return Patterns.createJson(data, parentId.getPath(), blockId.getPath());
}
@Override @Override
public Optional<String> getModelString(String block) { public Optional<String> getModelString(String block) {
ResourceLocation blockId = Registry.BLOCK.getKey(this); ResourceLocation blockId = Registry.BLOCK.getKey(this);
@ -52,9 +44,5 @@ public class EndGateBlock extends FenceGateBlock implements BlockModelProvider {
} }
return Patterns.createJson(Patterns.BLOCK_GATE_CLOSED, parentId.getPath(), blockId.getPath()); return Patterns.createJson(Patterns.BLOCK_GATE_CLOSED, parentId.getPath(), blockId.getPath());
} }
@Override
public ResourceLocation statePatternId() {
return Patterns.STATE_GATE;
}
} }

View file

@ -1,6 +1,5 @@
package ru.betterend.blocks.basis; package ru.betterend.blocks.basis;
import java.io.Reader;
import java.util.Optional; import java.util.Optional;
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
@ -137,13 +136,7 @@ public class EndLadderBlock extends BlockBaseNotFull implements IRenderTypeable,
public ERenderLayer getRenderLayer() { public ERenderLayer getRenderLayer() {
return ERenderLayer.CUTOUT; return ERenderLayer.CUTOUT;
} }
@Override
public String getStatesPattern(Reader data) {
String blockId = Registry.BLOCK.getKey(this).getPath();
return Patterns.createJson(data, blockId, blockId);
}
@Override @Override
public Optional<String> getModelString(String block) { public Optional<String> getModelString(String block) {
ResourceLocation blockId = Registry.BLOCK.getKey(this); ResourceLocation blockId = Registry.BLOCK.getKey(this);
@ -152,9 +145,5 @@ public class EndLadderBlock extends BlockBaseNotFull implements IRenderTypeable,
} }
return Patterns.createJson(Patterns.BLOCK_LADDER, blockId.getPath()); return Patterns.createJson(Patterns.BLOCK_LADDER, blockId.getPath());
} }
@Override
public ResourceLocation statePatternId() {
return Patterns.STATE_LADDER;
}
} }

View file

@ -1,6 +1,5 @@
package ru.betterend.blocks.basis; package ru.betterend.blocks.basis;
import java.io.Reader;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
@ -10,7 +9,6 @@ import com.google.common.collect.Lists;
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
import net.fabricmc.fabric.api.tool.attribute.v1.FabricToolTags; import net.fabricmc.fabric.api.tool.attribute.v1.FabricToolTags;
import net.minecraft.core.Registry; import net.minecraft.core.Registry;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.enchantment.EnchantmentHelper; import net.minecraft.world.item.enchantment.EnchantmentHelper;
import net.minecraft.world.item.enchantment.Enchantments; import net.minecraft.world.item.enchantment.Enchantments;
@ -53,24 +51,13 @@ public class EndLeavesBlock extends LeavesBlock implements BlockModelProvider, I
.isViewBlocking((state, world, pos) -> false)); .isViewBlocking((state, world, pos) -> false));
this.sapling = sapling; this.sapling = sapling;
} }
@Override
public String getStatesPattern(Reader data) {
String blockId = Registry.BLOCK.getKey(this).getPath();
return Patterns.createJson(data, blockId, blockId);
}
@Override @Override
public Optional<String> getModelString(String block) { public Optional<String> getModelString(String block) {
String blockId = Registry.BLOCK.getKey(this).getPath(); String blockId = Registry.BLOCK.getKey(this).getPath();
return Patterns.createJson(Patterns.BLOCK_BASE, blockId, blockId); return Patterns.createJson(Patterns.BLOCK_BASE, blockId, blockId);
} }
@Override
public ResourceLocation statePatternId() {
return Patterns.STATE_SIMPLE;
}
@Override @Override
public ERenderLayer getRenderLayer() { public ERenderLayer getRenderLayer() {
return ERenderLayer.CUTOUT; return ERenderLayer.CUTOUT;

View file

@ -1,6 +1,5 @@
package ru.betterend.blocks.basis; package ru.betterend.blocks.basis;
import java.io.Reader;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
@ -30,13 +29,7 @@ public class EndMetalPaneBlock extends IronBarsBlock implements BlockModelProvid
public List<ItemStack> getDrops(BlockState state, LootContext.Builder builder) { public List<ItemStack> getDrops(BlockState state, LootContext.Builder builder) {
return Collections.singletonList(new ItemStack(this)); return Collections.singletonList(new ItemStack(this));
} }
@Override
public String getStatesPattern(Reader data) {
ResourceLocation blockId = Registry.BLOCK.getKey(this);
return Patterns.createJson(data, blockId.getPath(), blockId.getPath());
}
@Override @Override
public Optional<String> getModelString(String block) { public Optional<String> getModelString(String block) {
ResourceLocation blockId = Registry.BLOCK.getKey(this); ResourceLocation blockId = Registry.BLOCK.getKey(this);
@ -58,12 +51,7 @@ public class EndMetalPaneBlock extends IronBarsBlock implements BlockModelProvid
} }
return super.skipRendering(state, stateFrom, direction); return super.skipRendering(state, stateFrom, direction);
} }
@Override
public ResourceLocation statePatternId() {
return Patterns.STATE_BARS;
}
@Override @Override
public ERenderLayer getRenderLayer() { public ERenderLayer getRenderLayer() {
return ERenderLayer.CUTOUT; return ERenderLayer.CUTOUT;

View file

@ -1,6 +1,5 @@
package ru.betterend.blocks.basis; package ru.betterend.blocks.basis;
import java.io.Reader;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
@ -28,14 +27,7 @@ public class EndMetalPlateBlock extends WeightedPressurePlateBlock implements Bl
public List<ItemStack> getDrops(BlockState state, LootContext.Builder builder) { public List<ItemStack> getDrops(BlockState state, LootContext.Builder builder) {
return Collections.singletonList(new ItemStack(this)); return Collections.singletonList(new ItemStack(this));
} }
@Override
public String getStatesPattern(Reader data) {
ResourceLocation blockId = Registry.BLOCK.getKey(this);
ResourceLocation parentId = Registry.BLOCK.getKey(parent);
return Patterns.createJson(data, parentId.getPath(), blockId.getPath());
}
@Override @Override
public Optional<String> getModelString(String block) { public Optional<String> getModelString(String block) {
ResourceLocation blockId = Registry.BLOCK.getKey(this); ResourceLocation blockId = Registry.BLOCK.getKey(this);
@ -45,9 +37,5 @@ public class EndMetalPlateBlock extends WeightedPressurePlateBlock implements Bl
} }
return Patterns.createJson(Patterns.BLOCK_PLATE_UP, parentId.getPath(), blockId.getPath()); return Patterns.createJson(Patterns.BLOCK_PLATE_UP, parentId.getPath(), blockId.getPath());
} }
@Override
public ResourceLocation statePatternId() {
return Patterns.STATE_PLATE;
}
} }

View file

@ -1,6 +1,5 @@
package ru.betterend.blocks.basis; package ru.betterend.blocks.basis;
import java.io.Reader;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
@ -71,21 +70,11 @@ public class EndOreBlock extends OreBlock implements BlockModelProvider {
} }
return Collections.emptyList(); return Collections.emptyList();
} }
@Override
public String getStatesPattern(Reader data) {
String block = Registry.BLOCK.getKey(this).getPath();
return Patterns.createJson(data, block, block);
}
@Override @Override
public Optional<String> getModelString(String block) { public Optional<String> getModelString(String block) {
ResourceLocation blockId = Registry.BLOCK.getKey(this); ResourceLocation blockId = Registry.BLOCK.getKey(this);
return Patterns.createJson(Patterns.BLOCK_BASE, blockId.getPath(), block); return Patterns.createJson(Patterns.BLOCK_BASE, blockId.getPath(), block);
} }
@Override
public ResourceLocation statePatternId() {
return Patterns.STATE_SIMPLE;
}
} }

View file

@ -1,6 +1,5 @@
package ru.betterend.blocks.basis; package ru.betterend.blocks.basis;
import java.io.Reader;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -39,23 +38,12 @@ public class EndPillarBlock extends RotatedPillarBlock implements BlockModelProv
public BlockModel getModel(ResourceLocation blockId) { public BlockModel getModel(ResourceLocation blockId) {
return getBlockModel(blockId, defaultBlockState()); return getBlockModel(blockId, defaultBlockState());
} }
@Override
public String getStatesPattern(Reader data) {
String texture = Registry.BLOCK.getKey(this).getPath();
return Patterns.createJson(data, texture, texture);
}
@Override @Override
public Optional<String> getModelString(String block) { public Optional<String> getModelString(String block) {
ResourceLocation blockId = Registry.BLOCK.getKey(this); ResourceLocation blockId = Registry.BLOCK.getKey(this);
return createBlockPattern(blockId); return createBlockPattern(blockId);
} }
@Override
public ResourceLocation statePatternId() {
return Patterns.STATE_PILLAR;
}
@Override @Override
public BlockModel getBlockModel(ResourceLocation blockId, BlockState blockState) { public BlockModel getBlockModel(ResourceLocation blockId, BlockState blockState) {

View file

@ -1,6 +1,5 @@
package ru.betterend.blocks.basis; package ru.betterend.blocks.basis;
import java.io.Reader;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
@ -28,14 +27,7 @@ public class EndPlateBlock extends PressurePlateBlock implements BlockModelProvi
public List<ItemStack> getDrops(BlockState state, LootContext.Builder builder) { public List<ItemStack> getDrops(BlockState state, LootContext.Builder builder) {
return Collections.singletonList(new ItemStack(this)); return Collections.singletonList(new ItemStack(this));
} }
@Override
public String getStatesPattern(Reader data) {
ResourceLocation blockId = Registry.BLOCK.getKey(this);
ResourceLocation parentId = Registry.BLOCK.getKey(parent);
return Patterns.createJson(data, parentId.getPath(), blockId.getPath());
}
@Override @Override
public Optional<String> getModelString(String block) { public Optional<String> getModelString(String block) {
ResourceLocation blockId = Registry.BLOCK.getKey(this); ResourceLocation blockId = Registry.BLOCK.getKey(this);
@ -45,9 +37,5 @@ public class EndPlateBlock extends PressurePlateBlock implements BlockModelProvi
} }
return Patterns.createJson(Patterns.BLOCK_PLATE_UP, parentId.getPath(), blockId.getPath()); return Patterns.createJson(Patterns.BLOCK_PLATE_UP, parentId.getPath(), blockId.getPath());
} }
@Override
public ResourceLocation statePatternId() {
return this.stateDefinition.getProperty("facing") != null ? Patterns.STATE_PLATE_ROTATED : Patterns.STATE_PLATE;
}
} }

View file

@ -1,6 +1,5 @@
package ru.betterend.blocks.basis; package ru.betterend.blocks.basis;
import java.io.Reader;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
@ -144,14 +143,7 @@ public class EndSignBlock extends SignBlock implements BlockModelProvider, ISpet
return null; return null;
} }
@Override
public String getStatesPattern(Reader data) {
ResourceLocation blockId = Registry.BLOCK.getKey(this);
ResourceLocation parentId = Registry.BLOCK.getKey(parent);
return Patterns.createJson(data, parentId.getPath(), blockId.getPath());
}
@Override @Override
public Optional<String> getModelString(String path) { public Optional<String> getModelString(String path) {
ResourceLocation parentId = Registry.BLOCK.getKey(parent); ResourceLocation parentId = Registry.BLOCK.getKey(parent);
@ -160,12 +152,7 @@ public class EndSignBlock extends SignBlock implements BlockModelProvider, ISpet
} }
return Patterns.createJson(Patterns.BLOCK_EMPTY, parentId.getPath()); return Patterns.createJson(Patterns.BLOCK_EMPTY, parentId.getPath());
} }
@Override
public ResourceLocation statePatternId() {
return Patterns.STATE_SIMPLE;
}
@Override @Override
public BlockState rotate(BlockState state, Rotation rotation) { public BlockState rotate(BlockState state, Rotation rotation) {
return (BlockState) state.setValue(ROTATION, rotation.rotate((Integer) state.getValue(ROTATION), 16)); return (BlockState) state.setValue(ROTATION, rotation.rotate((Integer) state.getValue(ROTATION), 16));

View file

@ -1,6 +1,5 @@
package ru.betterend.blocks.basis; package ru.betterend.blocks.basis;
import java.io.Reader;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
@ -28,23 +27,12 @@ public class EndSlabBlock extends SlabBlock implements BlockModelProvider {
public List<ItemStack> getDrops(BlockState state, LootContext.Builder builder) { public List<ItemStack> getDrops(BlockState state, LootContext.Builder builder) {
return Collections.singletonList(new ItemStack(this)); return Collections.singletonList(new ItemStack(this));
} }
@Override
public String getStatesPattern(Reader data) {
ResourceLocation blockId = Registry.BLOCK.getKey(this);
ResourceLocation parentId = Registry.BLOCK.getKey(parent);
return Patterns.createJson(data, parentId.getPath(), blockId.getPath());
}
@Override @Override
public Optional<String> getModelString(String block) { public Optional<String> getModelString(String block) {
ResourceLocation blockId = Registry.BLOCK.getKey(this); ResourceLocation blockId = Registry.BLOCK.getKey(this);
ResourceLocation parentId = Registry.BLOCK.getKey(parent); ResourceLocation parentId = Registry.BLOCK.getKey(parent);
return Patterns.createJson(Patterns.BLOCK_SLAB, parentId.getPath(), blockId.getPath()); return Patterns.createJson(Patterns.BLOCK_SLAB, parentId.getPath(), blockId.getPath());
} }
@Override
public ResourceLocation statePatternId() {
return Patterns.STATE_SLAB;
}
} }

View file

@ -1,6 +1,5 @@
package ru.betterend.blocks.basis; package ru.betterend.blocks.basis;
import java.io.Reader;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
@ -29,14 +28,7 @@ public class EndStairsBlock extends StairBlock implements BlockModelProvider {
public List<ItemStack> getDrops(BlockState state, LootContext.Builder builder) { public List<ItemStack> getDrops(BlockState state, LootContext.Builder builder) {
return Collections.singletonList(new ItemStack(this)); return Collections.singletonList(new ItemStack(this));
} }
@Override
public String getStatesPattern(Reader data) {
ResourceLocation blockId = Registry.BLOCK.getKey(this);
ResourceLocation parentId = Registry.BLOCK.getKey(parent);
return Patterns.createJson(data, parentId.getPath(), blockId.getPath());
}
@Override @Override
public Optional<String> getModelString(String block) { public Optional<String> getModelString(String block) {
ResourceLocation blockId = Registry.BLOCK.getKey(this); ResourceLocation blockId = Registry.BLOCK.getKey(this);
@ -50,9 +42,5 @@ public class EndStairsBlock extends StairBlock implements BlockModelProvider {
} }
return pattern; return pattern;
} }
@Override
public ResourceLocation statePatternId() {
return Patterns.STATE_STAIRS;
}
} }

View file

@ -1,6 +1,5 @@
package ru.betterend.blocks.basis; package ru.betterend.blocks.basis;
import java.io.Reader;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
@ -28,14 +27,7 @@ public class EndStoneButtonBlock extends StoneButtonBlock implements BlockModelP
public List<ItemStack> getDrops(BlockState state, LootContext.Builder builder) { public List<ItemStack> getDrops(BlockState state, LootContext.Builder builder) {
return Collections.singletonList(new ItemStack(this)); return Collections.singletonList(new ItemStack(this));
} }
@Override
public String getStatesPattern(Reader data) {
ResourceLocation blockId = Registry.BLOCK.getKey(this);
ResourceLocation parentId = Registry.BLOCK.getKey(parent);
return Patterns.createJson(data, parentId.getPath(), blockId.getPath());
}
@Override @Override
public Optional<String> getModelString(String block) { public Optional<String> getModelString(String block) {
ResourceLocation blockId = Registry.BLOCK.getKey(this); ResourceLocation blockId = Registry.BLOCK.getKey(this);
@ -48,9 +40,5 @@ public class EndStoneButtonBlock extends StoneButtonBlock implements BlockModelP
} }
return Patterns.createJson(Patterns.BLOCK_BUTTON, parentId.getPath(), blockId.getPath()); return Patterns.createJson(Patterns.BLOCK_BUTTON, parentId.getPath(), blockId.getPath());
} }
@Override
public ResourceLocation statePatternId() {
return Patterns.STATE_BUTTON;
}
} }

View file

@ -1,6 +1,5 @@
package ru.betterend.blocks.basis; package ru.betterend.blocks.basis;
import java.io.Reader;
import java.util.Collections; import java.util.Collections;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
@ -33,13 +32,7 @@ public class EndTrapdoorBlock extends TrapDoorBlock implements IRenderTypeable,
public ERenderLayer getRenderLayer() { public ERenderLayer getRenderLayer() {
return ERenderLayer.CUTOUT; return ERenderLayer.CUTOUT;
} }
@Override
public String getStatesPattern(Reader data) {
String block = Registry.BLOCK.getKey(this).getPath();
return Patterns.createJson(data, block, block);
}
@Override @Override
public Optional<String> getModelString(String block) { public Optional<String> getModelString(String block) {
ResourceLocation blockId = Registry.BLOCK.getKey(this); ResourceLocation blockId = Registry.BLOCK.getKey(this);
@ -52,9 +45,5 @@ public class EndTrapdoorBlock extends TrapDoorBlock implements IRenderTypeable,
} }
}); });
} }
@Override
public ResourceLocation statePatternId() {
return Patterns.STATE_TRAPDOOR;
}
} }

View file

@ -1,6 +1,5 @@
package ru.betterend.blocks.basis; package ru.betterend.blocks.basis;
import java.io.Reader;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
@ -29,14 +28,7 @@ public class EndWallBlock extends WallBlock implements BlockModelProvider {
public List<ItemStack> getDrops(BlockState state, LootContext.Builder builder) { public List<ItemStack> getDrops(BlockState state, LootContext.Builder builder) {
return Collections.singletonList(new ItemStack(this)); return Collections.singletonList(new ItemStack(this));
} }
@Override
public String getStatesPattern(Reader data) {
ResourceLocation blockId = Registry.BLOCK.getKey(this);
ResourceLocation parentId = Registry.BLOCK.getKey(parent);
return Patterns.createJson(data, parentId.getPath(), blockId.getPath());
}
@Override @Override
public Optional<String> getModelString(String block) { public Optional<String> getModelString(String block) {
ResourceLocation blockId = Registry.BLOCK.getKey(this); ResourceLocation blockId = Registry.BLOCK.getKey(this);
@ -52,9 +44,5 @@ public class EndWallBlock extends WallBlock implements BlockModelProvider {
} }
return Patterns.createJson(Patterns.BLOCK_WALL_POST, parentId.getPath(), blockId.getPath()); return Patterns.createJson(Patterns.BLOCK_WALL_POST, parentId.getPath(), blockId.getPath());
} }
@Override
public ResourceLocation statePatternId() {
return Patterns.STATE_WALL;
}
} }

View file

@ -1,6 +1,5 @@
package ru.betterend.blocks.basis; package ru.betterend.blocks.basis;
import java.io.Reader;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
@ -28,14 +27,7 @@ public class EndWoodenButtonBlock extends WoodButtonBlock implements BlockModelP
public List<ItemStack> getDrops(BlockState state, LootContext.Builder builder) { public List<ItemStack> getDrops(BlockState state, LootContext.Builder builder) {
return Collections.singletonList(new ItemStack(this)); return Collections.singletonList(new ItemStack(this));
} }
@Override
public String getStatesPattern(Reader data) {
ResourceLocation blockId = Registry.BLOCK.getKey(this);
ResourceLocation parentId = Registry.BLOCK.getKey(parent);
return Patterns.createJson(data, parentId.getPath(), blockId.getPath());
}
@Override @Override
public Optional<String> getModelString(String block) { public Optional<String> getModelString(String block) {
ResourceLocation blockId = Registry.BLOCK.getKey(this); ResourceLocation blockId = Registry.BLOCK.getKey(this);
@ -48,9 +40,5 @@ public class EndWoodenButtonBlock extends WoodButtonBlock implements BlockModelP
} }
return Patterns.createJson(Patterns.BLOCK_BUTTON, parentId.getPath(), blockId.getPath()); return Patterns.createJson(Patterns.BLOCK_BUTTON, parentId.getPath(), blockId.getPath());
} }
@Override
public ResourceLocation statePatternId() {
return Patterns.STATE_BUTTON;
}
} }

View file

@ -1,6 +1,5 @@
package ru.betterend.blocks.basis; package ru.betterend.blocks.basis;
import java.io.Reader;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
@ -10,7 +9,6 @@ import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
import net.minecraft.client.renderer.block.model.BlockModel; import net.minecraft.client.renderer.block.model.BlockModel;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction; import net.minecraft.core.Direction;
import net.minecraft.core.Registry;
import net.minecraft.resources.ResourceLocation; import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerLevel;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
@ -110,12 +108,6 @@ public abstract class FeatureSaplingBlock extends SaplingBlock implements IRende
return ERenderLayer.CUTOUT; return ERenderLayer.CUTOUT;
} }
@Override
public String getStatesPattern(Reader data) {
ResourceLocation blockId = Registry.BLOCK.getKey(this);
return Patterns.createJson(data, blockId.getPath(), blockId.getPath());
}
@Override @Override
public Optional<String> getModelString(String block) { public Optional<String> getModelString(String block) {
if (block.contains("item")) { if (block.contains("item")) {
@ -125,11 +117,6 @@ public abstract class FeatureSaplingBlock extends SaplingBlock implements IRende
return Patterns.createJson(Patterns.BLOCK_CROSS, block); return Patterns.createJson(Patterns.BLOCK_CROSS, block);
} }
@Override
public ResourceLocation statePatternId() {
return Patterns.STATE_SAPLING;
}
@Override @Override
public BlockModel getModel(ResourceLocation resourceLocation) { public BlockModel getModel(ResourceLocation resourceLocation) {
return ModelsHelper.createBlockItem(resourceLocation); return ModelsHelper.createBlockItem(resourceLocation);

View file

@ -1,7 +1,6 @@
package ru.betterend.blocks.basis; package ru.betterend.blocks.basis;
import java.awt.Point; import java.awt.Point;
import java.io.Reader;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -338,13 +337,7 @@ public class PedestalBlock extends BlockBaseNotFull implements EntityBlock {
public int getAnalogOutputSignal(BlockState state, Level world, BlockPos pos) { public int getAnalogOutputSignal(BlockState state, Level world, BlockPos pos) {
return state.getValue(HAS_ITEM) ? 15 : 0; return state.getValue(HAS_ITEM) ? 15 : 0;
} }
@Override
public String getStatesPattern(Reader data) {
String texture = Registry.BLOCK.getKey(this).getPath();
return Patterns.createJson(data, texture, texture);
}
@Override @Override
public Optional<String> getModelString(String block) { public Optional<String> getModelString(String block) {
Map<String, String> textures = createTexturesMap(); Map<String, String> textures = createTexturesMap();
@ -406,11 +399,6 @@ public class PedestalBlock extends BlockBaseNotFull implements EntityBlock {
return ModelsHelper.createBlockSimple(modelId); return ModelsHelper.createBlockSimple(modelId);
} }
@Override
public ResourceLocation statePatternId() {
return Patterns.STATE_PEDESTAL;
}
protected Map<String, String> createTexturesMap() { protected Map<String, String> createTexturesMap() {
ResourceLocation blockId = Registry.BLOCK.getKey(parent); ResourceLocation blockId = Registry.BLOCK.getKey(parent);
String name = blockId.getPath(); String name = blockId.getPath();

View file

@ -1,11 +1,9 @@
package ru.betterend.blocks.basis; package ru.betterend.blocks.basis;
import java.io.Reader;
import java.util.Optional; import java.util.Optional;
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
import net.minecraft.core.Registry; import net.minecraft.core.Registry;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.level.block.SoundType; import net.minecraft.world.level.block.SoundType;
import net.minecraft.world.level.material.Material; import net.minecraft.world.level.material.Material;
import net.minecraft.world.level.material.MaterialColor; import net.minecraft.world.level.material.MaterialColor;
@ -36,23 +34,12 @@ public class SimpleLeavesBlock extends BlockBaseNotFull implements IRenderTypeab
.isSuffocating((state, world, pos) -> false) .isSuffocating((state, world, pos) -> false)
.isViewBlocking((state, world, pos) -> false)); .isViewBlocking((state, world, pos) -> false));
} }
@Override
public String getStatesPattern(Reader data) {
String texture = Registry.BLOCK.getKey(this).getPath();
return Patterns.createJson(data, texture, texture);
}
@Override @Override
public Optional<String> getModelString(String block) { public Optional<String> getModelString(String block) {
String texture = Registry.BLOCK.getKey(this).getPath(); String texture = Registry.BLOCK.getKey(this).getPath();
return Patterns.createJson(Patterns.BLOCK_BASE, texture, texture); return Patterns.createJson(Patterns.BLOCK_BASE, texture, texture);
} }
@Override
public ResourceLocation statePatternId() {
return Patterns.STATE_SIMPLE;
}
@Override @Override
public ERenderLayer getRenderLayer() { public ERenderLayer getRenderLayer() {

View file

@ -201,12 +201,7 @@ public class StalactiteBlock extends BlockBaseNotFull implements SimpleWaterlogg
} }
return Patterns.createJson(Patterns.BLOCK_CROSS_SHADED, block); return Patterns.createJson(Patterns.BLOCK_CROSS_SHADED, block);
} }
@Override
public ResourceLocation statePatternId() {
return Patterns.STATE_STALACTITE;
}
@Override @Override
public boolean canPlaceLiquid(BlockGetter world, BlockPos pos, BlockState state, Fluid fluid) { public boolean canPlaceLiquid(BlockGetter world, BlockPos pos, BlockState state, Fluid fluid) {
return false; return false;

View file

@ -1,6 +1,5 @@
package ru.betterend.blocks.basis; package ru.betterend.blocks.basis;
import java.io.Reader;
import java.util.Optional; import java.util.Optional;
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
@ -9,7 +8,6 @@ import net.minecraft.client.color.item.ItemColor;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.core.Registry; import net.minecraft.core.Registry;
import net.minecraft.core.Vec3i; import net.minecraft.core.Vec3i;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth; import net.minecraft.util.Mth;
import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.BlockGetter;
import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Block;
@ -62,12 +60,7 @@ public class StoneLanternBlock extends EndLanternBlock implements IColorProvider
public VoxelShape getShape(BlockState state, BlockGetter view, BlockPos pos, CollisionContext ePos) { public VoxelShape getShape(BlockState state, BlockGetter view, BlockPos pos, CollisionContext ePos) {
return state.getValue(IS_FLOOR) ? SHAPE_FLOOR : SHAPE_CEIL; return state.getValue(IS_FLOOR) ? SHAPE_FLOOR : SHAPE_CEIL;
} }
@Override
public ResourceLocation statePatternId() {
return Patterns.STATE_STONE_LANTERN;
}
@Override @Override
public Optional<String> getModelString(String block) { public Optional<String> getModelString(String block) {
String texture = Registry.BLOCK.getKey(this).getPath(); String texture = Registry.BLOCK.getKey(this).getPath();
@ -76,10 +69,5 @@ public class StoneLanternBlock extends EndLanternBlock implements IColorProvider
} }
return Patterns.createJson(Patterns.BLOCK_STONE_LANTERN_FLOOR, texture, texture); return Patterns.createJson(Patterns.BLOCK_STONE_LANTERN_FLOOR, texture, texture);
} }
@Override
public String getStatesPattern(Reader data) {
String block = Registry.BLOCK.getKey(this).getPath();
return Patterns.createJson(data, block, block);
}
} }

View file

@ -9,7 +9,6 @@ import com.google.common.collect.Maps;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction; import net.minecraft.core.Direction;
import net.minecraft.core.Registry; import net.minecraft.core.Registry;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerLevel;
import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResult; import net.minecraft.world.InteractionResult;
@ -61,12 +60,7 @@ public class TripleTerrainBlock extends EndTerrainBlock {
map.put("%bottom%", "minecraft:block/end_stone"); map.put("%bottom%", "minecraft:block/end_stone");
return Patterns.createJson(Patterns.BLOCK_TOP_SIDE_BOTTOM, map); return Patterns.createJson(Patterns.BLOCK_TOP_SIDE_BOTTOM, map);
} }
@Override
public ResourceLocation statePatternId() {
return Patterns.STATE_TRIPLE_ROTATED_TOP;
}
@Override @Override
public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) {
TripleShape shape = state.getValue(SHAPE); TripleShape shape = state.getValue(SHAPE);

View file

@ -15,9 +15,6 @@ import ru.betterend.BetterEnd;
import static net.minecraft.client.resources.model.ModelBakery.MISSING_MODEL_LOCATION; import static net.minecraft.client.resources.model.ModelBakery.MISSING_MODEL_LOCATION;
public interface BlockModelProvider extends ModelProvider { public interface BlockModelProvider extends ModelProvider {
String getStatesPattern(Reader data);
ResourceLocation statePatternId();
@Nullable @Nullable
default BlockModel getBlockModel(ResourceLocation resourceLocation, BlockState blockState) { default BlockModel getBlockModel(ResourceLocation resourceLocation, BlockState blockState) {
Optional<String> pattern = Patterns.createBlockSimple(resourceLocation.getPath()); Optional<String> pattern = Patterns.createBlockSimple(resourceLocation.getPath());

View file

@ -18,39 +18,7 @@ import net.minecraft.server.packs.resources.ResourceManager;
import ru.betterend.BetterEnd; import ru.betterend.BetterEnd;
public class Patterns { public class Patterns {
//Block Models
//Blockstates
public final static ResourceLocation STATE_SIMPLE = BetterEnd.makeID("patterns/blockstate/block.json");
public final static ResourceLocation STATE_SLAB = BetterEnd.makeID("patterns/blockstate/slab.json");
public final static ResourceLocation STATE_STAIRS = BetterEnd.makeID("patterns/blockstate/stairs.json");
public final static ResourceLocation STATE_WALL = BetterEnd.makeID("patterns/blockstate/wall.json");
public final static ResourceLocation STATE_FENCE = BetterEnd.makeID("patterns/blockstate/fence.json");
public final static ResourceLocation STATE_BUTTON = BetterEnd.makeID("patterns/blockstate/button.json");
public final static ResourceLocation STATE_PILLAR = BetterEnd.makeID("patterns/blockstate/pillar.json");
public final static ResourceLocation STATE_PLATE = BetterEnd.makeID("patterns/blockstate/pressure_plate.json");
public final static ResourceLocation STATE_PLATE_ROTATED = BetterEnd.makeID("patterns/blockstate/pressure_plate_rotated.json");
public final static ResourceLocation STATE_DOOR = BetterEnd.makeID("patterns/blockstate/door.json");
public final static ResourceLocation STATE_SAPLING = BetterEnd.makeID("patterns/blockstate/sapling.json");
public final static ResourceLocation STATE_GATE = BetterEnd.makeID("patterns/blockstate/fence_gate.json");
public final static ResourceLocation STATE_TRAPDOOR = BetterEnd.makeID("patterns/blockstate/trapdoor.json");
public final static ResourceLocation STATE_LADDER = BetterEnd.makeID("patterns/blockstate/ladder.json");
public final static ResourceLocation STATE_BARREL = BetterEnd.makeID("patterns/blockstate/barrel.json");
public final static ResourceLocation STATE_PEDESTAL = BetterEnd.makeID("patterns/blockstate/pedestal.json");
public final static ResourceLocation STATE_STONE_LANTERN = BetterEnd.makeID("patterns/blockstate/stone_lantern.json");
public final static ResourceLocation STATE_DIRECT = BetterEnd.makeID("patterns/blockstate/direct.json");
public final static ResourceLocation STATE_BULB_LANTERN = BetterEnd.makeID("patterns/blockstate/bulb_lantern.json");
public final static ResourceLocation STATE_COMPOSTER = BetterEnd.makeID("patterns/blockstate/composter.json");
public final static ResourceLocation STATE_BARS = BetterEnd.makeID("patterns/blockstate/bars.json");
public final static ResourceLocation STATE_ANVIL = BetterEnd.makeID("patterns/blockstate/anvil.json");
public final static ResourceLocation STATE_ANVIL_LONG = BetterEnd.makeID("patterns/blockstate/anvil_long.json");
public final static ResourceLocation STATE_CHAIN = BetterEnd.makeID("patterns/blockstate/chain.json");
public final static ResourceLocation STATE_CHANDELIER = BetterEnd.makeID("patterns/blockstate/chandelier.json");
public final static ResourceLocation STATE_FURNACE = BetterEnd.makeID("patterns/blockstate/furnace.json");
public final static ResourceLocation STATE_ROTATED_TOP = BetterEnd.makeID("patterns/blockstate/rotated_top.json");
public final static ResourceLocation STATE_TRIPLE_ROTATED_TOP = BetterEnd.makeID("patterns/blockstate/triple_rotated_top.json");
public final static ResourceLocation STATE_STALACTITE = BetterEnd.makeID("patterns/blockstate/stalactite.json");
//Models Block
public final static ResourceLocation BLOCK_EMPTY = BetterEnd.makeID("patterns/block/empty.json"); public final static ResourceLocation BLOCK_EMPTY = BetterEnd.makeID("patterns/block/empty.json");
public final static ResourceLocation BLOCK_BASE = BetterEnd.makeID("patterns/block/block.json"); public final static ResourceLocation BLOCK_BASE = BetterEnd.makeID("patterns/block/block.json");
public final static ResourceLocation BLOCK_SIDED = BetterEnd.makeID("patterns/block/block_sided.json"); public final static ResourceLocation BLOCK_SIDED = BetterEnd.makeID("patterns/block/block_sided.json");
@ -108,7 +76,7 @@ public class Patterns {
public final static ResourceLocation BLOCK_TOP_SIDE_BOTTOM = BetterEnd.makeID("patterns/block/top_side_bottom.json"); public final static ResourceLocation BLOCK_TOP_SIDE_BOTTOM = BetterEnd.makeID("patterns/block/top_side_bottom.json");
public final static ResourceLocation BLOCK_PATH = BetterEnd.makeID("patterns/block/path.json"); public final static ResourceLocation BLOCK_PATH = BetterEnd.makeID("patterns/block/path.json");
//Models Item //Item Models
public final static ResourceLocation ITEM_WALL = BetterEnd.makeID("patterns/item/pattern_wall.json"); public final static ResourceLocation ITEM_WALL = BetterEnd.makeID("patterns/item/pattern_wall.json");
public final static ResourceLocation ITEM_FENCE = BetterEnd.makeID("patterns/item/pattern_fence.json"); public final static ResourceLocation ITEM_FENCE = BetterEnd.makeID("patterns/item/pattern_fence.json");
public final static ResourceLocation ITEM_BUTTON = BetterEnd.makeID("patterns/item/pattern_button.json"); public final static ResourceLocation ITEM_BUTTON = BetterEnd.makeID("patterns/item/pattern_button.json");

View file

@ -1,31 +0,0 @@
package ru.betterend.mixin.client;
import java.io.Reader;
import java.io.StringReader;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
import com.google.gson.Gson;
import net.minecraft.client.renderer.block.model.BlockModelDefinition;
import net.minecraft.util.GsonHelper;
import net.minecraft.world.level.block.Block;
import ru.betterend.client.models.BlockModelProvider;
@Mixin(BlockModelDefinition.class)
public abstract class ModelVariantMapMixin {
@Inject(method = "fromStream", at = @At("HEAD"), cancellable = true)
private static void be_deserializeBlockState(BlockModelDefinition.Context context, Reader reader, CallbackInfoReturnable<BlockModelDefinition> info) {
Block block = context.getDefinition().any().getBlock();
if (block instanceof BlockModelProvider) {
String pattern = ((BlockModelProvider) block).getStatesPattern(reader);
Gson gson = ContextGsonAccessor.class.cast(context).getGson();
BlockModelDefinition map = GsonHelper.fromJson(gson, new StringReader(pattern), BlockModelDefinition.class);
info.setReturnValue(map);
}
}
}

View file

@ -1,52 +0,0 @@
package ru.betterend.mixin.client;
import java.util.List;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.At.Shift;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
import com.google.common.collect.Lists;
import net.minecraft.core.Registry;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.packs.resources.FallbackResourceManager;
import net.minecraft.server.packs.resources.Resource;
import net.minecraft.world.level.block.Block;
import ru.betterend.BetterEnd;
import ru.betterend.client.models.BlockModelProvider;
@Mixin(FallbackResourceManager.class)
public abstract class NamespaceResourceManagerMixin {
@Shadow
public abstract Resource getResource(ResourceLocation id);
@Inject(method = "getResources", cancellable = true, at = @At(
value = "NEW",
target = "java/io/FileNotFoundException",
shift = Shift.BEFORE))
public void be_getStatesPattern(ResourceLocation id, CallbackInfoReturnable<List<Resource>> info) {
if (id.getNamespace().equals(BetterEnd.MOD_ID)) {
String[] data = id.getPath().split("/");
if (data.length > 1) {
ResourceLocation blockId = BetterEnd.makeID(data[1].replace(".json", ""));
Block block = Registry.BLOCK.get(blockId);
if (block instanceof BlockModelProvider) {
ResourceLocation stateId = ((BlockModelProvider) block).statePatternId();
try {
List<Resource> resources = Lists.newArrayList();
Resource stateRes = this.getResource(stateId);
resources.add(stateRes);
info.setReturnValue(resources);
} catch (Exception ex) {
BetterEnd.LOGGER.catching(ex);
}
}
}
}
}
}

View file

@ -6,13 +6,11 @@
"client": [ "client": [
"AbstractSoundInstanceAccessor", "AbstractSoundInstanceAccessor",
"ClientPlayNetworkHandlerMixin", "ClientPlayNetworkHandlerMixin",
"NamespaceResourceManagerMixin",
"EnchantingTableBlockMixin", "EnchantingTableBlockMixin",
"HumanoidMobRendererMixin", "HumanoidMobRendererMixin",
"ArmorStandRendererMixin", "ArmorStandRendererMixin",
"BackgroundRendererMixin", "BackgroundRendererMixin",
"ClientRecipeBookMixin", "ClientRecipeBookMixin",
"ModelVariantMapMixin",
"MinecraftClientMixin", "MinecraftClientMixin",
"ContextGsonAccessor", "ContextGsonAccessor",
"PlayerRendererMixin", "PlayerRendererMixin",