Create the block itself

This commit is contained in:
2024-05-24 08:17:39 +02:00
commit 2aee732f7e
20 changed files with 762 additions and 0 deletions

View File

@@ -0,0 +1,22 @@
package systems.brn.server_storage;
import eu.pb4.polymer.resourcepack.api.PolymerResourcePackUtils;
import net.fabricmc.api.ModInitializer;
import systems.brn.server_storage.blocks.StorageBlock;
public class ServerStorage implements ModInitializer {
public static final String MODID = "serverstorage";
public static final String MODELID = "storage";
@Override
public void onInitialize()
{
PolymerResourcePackUtils.addModAssets(MODID);
PolymerResourcePackUtils.markAsRequired();
StorageBlock.register();
}
public static StorageBlock JUMP_VADER_BLOCK;
}

View File

@@ -0,0 +1,39 @@
package systems.brn.server_storage.blocks;
import eu.pb4.polymer.blocks.api.BlockModelType;
import eu.pb4.polymer.blocks.api.PolymerBlockModel;
import eu.pb4.polymer.blocks.api.PolymerBlockResourceUtils;
import eu.pb4.polymer.blocks.api.PolymerTexturedBlock;
import net.minecraft.block.AbstractBlock;
import net.minecraft.block.Block;
import net.minecraft.block.BlockState;
import net.minecraft.block.Blocks;
import net.minecraft.item.Item;
import net.minecraft.registry.Registries;
import net.minecraft.registry.Registry;
import net.minecraft.util.Identifier;
import systems.brn.server_storage.ServerStorage;
import systems.brn.server_storage.items.StorageBlockItem;
public class StorageBlock extends Block implements PolymerTexturedBlock {
private final BlockState polymerBlockState;
public StorageBlock(Settings settings, BlockModelType type, String modelId) {
super(settings);
this.polymerBlockState = PolymerBlockResourceUtils.requestBlock(type, PolymerBlockModel.of(new Identifier(ServerStorage.MODID, modelId)));
}
@Override
public BlockState getPolymerBlockState(BlockState state) {
return this.polymerBlockState;
}
public static void register() {
var modId = new Identifier(ServerStorage.MODID, ServerStorage.MODELID);
var block = Registry.register(Registries.BLOCK, modId,
new StorageBlock(AbstractBlock.Settings.copy(Blocks.WHITE_WOOL), BlockModelType.FULL_BLOCK, ServerStorage.MODELID));
Registry.register(Registries.ITEM, modId, new StorageBlockItem(new Item.Settings(), block, ServerStorage.MODELID));
}
}

View File

@@ -0,0 +1,33 @@
package systems.brn.server_storage.items;
import eu.pb4.polymer.core.api.item.PolymerItem;
import eu.pb4.polymer.resourcepack.api.PolymerModelData;
import eu.pb4.polymer.resourcepack.api.PolymerResourcePackUtils;
import net.minecraft.block.Block;
import net.minecraft.item.BlockItem;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.server.network.ServerPlayerEntity;
import net.minecraft.util.Identifier;
import org.jetbrains.annotations.Nullable;
import systems.brn.server_storage.ServerStorage;
public class StorageBlockItem extends BlockItem implements PolymerItem {
private final PolymerModelData polymerModel;
public StorageBlockItem(Settings settings, Block block, String modelId) {
super(block, settings);
this.polymerModel = PolymerResourcePackUtils.requestModel(Items.BARRIER, new Identifier(ServerStorage.MODID, modelId));
}
@Override
public Item getPolymerItem(ItemStack itemStack, @Nullable ServerPlayerEntity player) {
return this.polymerModel.item();
}
@Override
public int getPolymerCustomModelData(ItemStack itemStack, @Nullable ServerPlayerEntity player) {
return this.polymerModel.value();
}
}