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();
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 293 B

View File

@@ -0,0 +1,7 @@
{
"variants": {
"": {
"model": "serverstorage:block/storage"
}
}
}

View File

@@ -0,0 +1,3 @@
{
"block.serverstorage.storage": "Chest storage controller"
}

View File

@@ -0,0 +1,3 @@
{
"parent": "storage:block/storage"
}

View File

@@ -0,0 +1,6 @@
{
"parent": "block/cube_all",
"textures": {
"all": "serverstorage:block/storage"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 293 B

View File

@@ -0,0 +1,27 @@
{
"schemaVersion": 1,
"id": "server_storage",
"version": "${version}",
"name": "Server storage",
"description": "",
"authors": [],
"contact": {
"repo": "https://git.brn.systems/BRNSystems/Server storageatencryptor"
},
"license": "MIT",
"icon": "assets/icon.png",
"environment": "*",
"entrypoints": {
"main": [
"systems.brn.server_storage.ServerStorage"
]
},
"mixins": [
"server_storage.mixins.json"
],
"depends": {
"fabricloader": ">=${loader_version}",
"fabric": "*",
"minecraft": "${minecraft_version}"
}
}

View File

@@ -0,0 +1,11 @@
{
"required": true,
"minVersion": "0.8",
"package": "systems.brn.server_storage.mixin",
"compatibilityLevel": "JAVA_21",
"mixins": [
],
"injectors": {
"defaultRequire": 1
}
}