init
This commit is contained in:
39
src/main/java/magistu/siegemachines/block/ModBlocks.java
Normal file
39
src/main/java/magistu/siegemachines/block/ModBlocks.java
Normal file
@@ -0,0 +1,39 @@
|
||||
package magistu.siegemachines.block;
|
||||
|
||||
import magistu.siegemachines.SiegeMachines;
|
||||
import magistu.siegemachines.item.ModItems;
|
||||
import net.minecraft.block.AbstractBlock;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.SoundType;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.item.BlockItem;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraftforge.eventbus.api.IEventBus;
|
||||
import net.minecraftforge.fml.RegistryObject;
|
||||
import net.minecraftforge.registries.DeferredRegister;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
|
||||
import java.util.function.Supplier;
|
||||
|
||||
public class ModBlocks
|
||||
{
|
||||
public static final DeferredRegister<Block> BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, SiegeMachines.ID);
|
||||
public static final RegistryObject<SiegeWorkbench> SIEGE_WORKBENCH = registerBlock("siege_workbench", () -> new SiegeWorkbench(AbstractBlock.Properties.of(Material.WOOD).strength(2.5f).sound(SoundType.WOOD)));
|
||||
|
||||
private static <T extends Block>RegistryObject<T> registerBlock(String name, Supplier<T> block)
|
||||
{
|
||||
RegistryObject<T> toReturn = BLOCKS.register(name, block);
|
||||
registerBlockItem(name, toReturn);
|
||||
return toReturn;
|
||||
}
|
||||
|
||||
private static <T extends Block> void registerBlockItem(String name, RegistryObject<T> block)
|
||||
{
|
||||
ModItems.ITEMS.register(name, () -> new BlockItem(block.get(), new Item.Properties().tab(ModItems.GROUP_SM)));
|
||||
}
|
||||
|
||||
public static void register(IEventBus eventBus)
|
||||
{
|
||||
BLOCKS.register(eventBus);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
package magistu.siegemachines.block;
|
||||
|
||||
import magistu.siegemachines.gui.SiegeWorkbenchContainer;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.block.CraftingTableBlock;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.entity.player.ServerPlayerEntity;
|
||||
import net.minecraft.inventory.container.INamedContainerProvider;
|
||||
import net.minecraft.inventory.container.SimpleNamedContainerProvider;
|
||||
import net.minecraft.util.ActionResultType;
|
||||
import net.minecraft.util.Hand;
|
||||
import net.minecraft.util.IWorldPosCallable;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.math.BlockRayTraceResult;
|
||||
import net.minecraft.util.text.ITextComponent;
|
||||
import net.minecraft.util.text.TranslationTextComponent;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.fml.network.NetworkHooks;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class SiegeWorkbench extends CraftingTableBlock
|
||||
{
|
||||
private static final ITextComponent CONTAINER_TITLE = new TranslationTextComponent("container.crafting");
|
||||
|
||||
public SiegeWorkbench(Properties p_i48422_1_)
|
||||
{
|
||||
super(p_i48422_1_);
|
||||
}
|
||||
|
||||
public @NotNull ActionResultType use(BlockState blockstate, World level, BlockPos blockpos, PlayerEntity player, Hand hand, BlockRayTraceResult result)
|
||||
{
|
||||
if (level.isClientSide)
|
||||
{
|
||||
return ActionResultType.SUCCESS;
|
||||
}
|
||||
else
|
||||
{
|
||||
NetworkHooks.openGui((ServerPlayerEntity) player, this.getMenuProvider(blockstate, level, blockpos));
|
||||
return ActionResultType.CONSUME;
|
||||
}
|
||||
}
|
||||
|
||||
public INamedContainerProvider getMenuProvider(BlockState blockstate, World level, BlockPos blockpos)
|
||||
{
|
||||
return new SimpleNamedContainerProvider((p_220270_2_, p_220270_3_, p_220270_4_) ->
|
||||
new SiegeWorkbenchContainer(p_220270_2_, p_220270_3_, IWorldPosCallable.create(level, blockpos)), CONTAINER_TITLE);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
package magistu.siegemachines.block;
|
||||
|
||||
import net.minecraft.inventory.CraftingInventory;
|
||||
import net.minecraft.inventory.container.Container;
|
||||
|
||||
public class StacksCraftingInventory extends CraftingInventory
|
||||
{
|
||||
public StacksCraftingInventory(Container p_i1807_1_, int p_i1807_2_, int p_i1807_3_)
|
||||
{
|
||||
super(p_i1807_1_, p_i1807_2_, p_i1807_3_);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user