grid Block - first attempt
Grid Block kann BlockState vom Block in der Hand annehmen Fehlt: Liste in der alle grid Blöcke gespeichert werden, um ihn nicht mehr abbauen zu können
This commit is contained in:
parent
72c43fac54
commit
14d79f9491
|
@ -1,11 +1,13 @@
|
||||||
package modchest;
|
package modchest;
|
||||||
|
|
||||||
import modchest.block.modBlocks;
|
|
||||||
import net.fabricmc.api.ClientModInitializer;
|
import net.fabricmc.api.ClientModInitializer;
|
||||||
|
|
||||||
public class REServerModClient implements ClientModInitializer {
|
public class REServerModClient implements ClientModInitializer {
|
||||||
@Override
|
@Override
|
||||||
public void onInitializeClient() {
|
public void onInitializeClient() {
|
||||||
// This entrypoint is suitable for setting up client-specific logic, such as rendering.
|
// This entrypoint is suitable for setting up client-specific logic, such as rendering.
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
|
@ -1,11 +1,12 @@
|
||||||
package modchest;
|
package modchest;
|
||||||
|
|
||||||
import modchest.block.entity.modBlockEntities;
|
import modchest.block.entity.modBlockEntities;
|
||||||
|
import modchest.event.attackBlockCallback;
|
||||||
|
import modchest.event.useBlockCallback;
|
||||||
import modchest.block.modBlocks;
|
import modchest.block.modBlocks;
|
||||||
import modchest.item.modItemGroup;
|
import modchest.item.modItemGroup;
|
||||||
import modchest.item.modItems;
|
import modchest.item.modItems;
|
||||||
import net.fabricmc.api.ModInitializer;
|
import net.fabricmc.api.ModInitializer;
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
@ -14,6 +15,7 @@ public class REServerMod implements ModInitializer {
|
||||||
public static final String MOD_ID = "modchest";
|
public static final String MOD_ID = "modchest";
|
||||||
public static final Logger LOGGER = LoggerFactory.getLogger("modchest"); // Erster Error Logger
|
public static final Logger LOGGER = LoggerFactory.getLogger("modchest"); // Erster Error Logger
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onInitialize() {
|
public void onInitialize() {
|
||||||
modItemGroup.modchest(); // Item Gruppe fürs Creative-Inventar wird erstellt; In dieser Gruppe sollen
|
modItemGroup.modchest(); // Item Gruppe fürs Creative-Inventar wird erstellt; In dieser Gruppe sollen
|
||||||
|
@ -21,7 +23,11 @@ public class REServerMod implements ModInitializer {
|
||||||
modItems.setItems(); // die Items werden erstellt
|
modItems.setItems(); // die Items werden erstellt
|
||||||
modBlocks.setBlocks(); // Hier werden die Blöcke erstellt
|
modBlocks.setBlocks(); // Hier werden die Blöcke erstellt
|
||||||
modBlockEntities.registerBlockEntities(); // Die Interaktionsmenüs für die Blöcke werden erstellt
|
modBlockEntities.registerBlockEntities(); // Die Interaktionsmenüs für die Blöcke werden erstellt
|
||||||
|
useBlockCallback.EVENT.register(new useBlockCallback());
|
||||||
|
attackBlockCallback.EVENT.register(new attackBlockCallback());
|
||||||
|
|
||||||
LOGGER.info("Modchest erfolgreich geladen!");
|
LOGGER.info("Modchest erfolgreich geladen!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
|
@ -1,33 +1,17 @@
|
||||||
package modchest.block.custom;
|
package modchest.block.custom;
|
||||||
|
|
||||||
import org.jetbrains.annotations.Nullable;
|
import net.minecraft.block.Block;
|
||||||
|
|
||||||
import modchest.block.entity.gridBlockEntity;
|
|
||||||
import modchest.block.entity.modBlockEntities;
|
|
||||||
import modchest.block.entity.steeringWheelEntity;
|
|
||||||
import net.minecraft.block.BlockEntityProvider;
|
|
||||||
import net.minecraft.block.BlockRenderType;
|
import net.minecraft.block.BlockRenderType;
|
||||||
import net.minecraft.block.BlockState;
|
import net.minecraft.block.BlockState;
|
||||||
import net.minecraft.block.BlockWithEntity;
|
|
||||||
import net.minecraft.block.entity.BlockEntity;
|
|
||||||
import net.minecraft.block.entity.BlockEntityTicker;
|
|
||||||
import net.minecraft.block.entity.BlockEntityType;
|
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
|
||||||
import net.minecraft.item.Item;
|
|
||||||
import net.minecraft.item.ItemStack;
|
|
||||||
import net.minecraft.screen.NamedScreenHandlerFactory;
|
|
||||||
import net.minecraft.util.ActionResult;
|
|
||||||
import net.minecraft.util.Hand;
|
|
||||||
import net.minecraft.util.hit.BlockHitResult;
|
|
||||||
import net.minecraft.util.math.BlockPos;
|
|
||||||
import net.minecraft.world.World;
|
|
||||||
|
|
||||||
public class gridBlock extends BlockWithEntity implements BlockEntityProvider {
|
public class gridBlock extends Block {
|
||||||
|
|
||||||
|
BlockState state;
|
||||||
|
|
||||||
public gridBlock(Settings settings) {
|
public gridBlock(Settings settings) {
|
||||||
super(settings);
|
super(settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BlockRenderType getRenderType(BlockState state) {
|
public BlockRenderType getRenderType(BlockState state) {
|
||||||
return BlockRenderType.MODEL;
|
return BlockRenderType.MODEL;
|
||||||
|
@ -35,42 +19,4 @@ public class gridBlock extends BlockWithEntity implements BlockEntityProvider {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public BlockEntity createBlockEntity(BlockPos pos, BlockState state) {
|
|
||||||
return new gridBlockEntity (pos, state);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// bei Rechtsklick mit anderem Block in der Hand überprüfen ob Block (außer mit Werkzeug)
|
|
||||||
//Texture von Block in Hand holen -> Texture von Grid Block zu dieser Textur setzen
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**UseBlockCallback.EVENT();
|
|
||||||
|
|
||||||
private boolean isBlock(){
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (player.Block==Block) {
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void changeTexture(){
|
|
||||||
|
|
||||||
if (isBlock()==true) {
|
|
||||||
|
|
||||||
Block.getTexture;
|
|
||||||
gridBlockBlock.setTexture;
|
|
||||||
}
|
|
||||||
}**/
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
package modchest.block;
|
package modchest.block;
|
||||||
|
|
||||||
import modchest.block.custom.gridBlock;
|
import modchest.block.custom.gridBlock;
|
||||||
import modchest.block.custom.steeringWheelBlock;
|
import modchest.block.custom.steeringWheelBlock;
|
||||||
import modchest.item.modItemGroup;
|
import modchest.item.modItemGroup;
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
package modchest.event;
|
||||||
|
|
||||||
|
import net.fabricmc.fabric.api.event.player.AttackBlockCallback;
|
||||||
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
|
import net.minecraft.util.ActionResult;
|
||||||
|
import net.minecraft.util.Hand;
|
||||||
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
import net.minecraft.util.math.Direction;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
|
public class attackBlockCallback implements AttackBlockCallback{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ActionResult interact(PlayerEntity player, World world, Hand hand, BlockPos pos, Direction direction) {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
return ActionResult.PASS;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,104 @@
|
||||||
|
package modchest.event;
|
||||||
|
|
||||||
|
import static net.minecraft.block.Block.getBlockFromItem;
|
||||||
|
|
||||||
|
import org.jetbrains.annotations.ApiStatus.OverrideOnly;
|
||||||
|
import org.spongepowered.asm.mixin.Overwrite;
|
||||||
|
|
||||||
|
import modchest.block.custom.gridBlock;
|
||||||
|
import net.fabricmc.fabric.api.event.player.UseBlockCallback;
|
||||||
|
import net.minecraft.block.Block;
|
||||||
|
import net.minecraft.block.BlockRenderType;
|
||||||
|
import net.minecraft.block.BlockState;
|
||||||
|
|
||||||
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
|
import net.minecraft.item.Item;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.stat.Stat;
|
||||||
|
import net.minecraft.text.Text;
|
||||||
|
import net.minecraft.util.ActionResult;
|
||||||
|
import net.minecraft.util.Hand;
|
||||||
|
import net.minecraft.util.hit.BlockHitResult;
|
||||||
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
import net.minecraft.util.math.Direction;
|
||||||
|
import net.minecraft.world.BlockRenderView;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
import net.minecraft.world.event.GameEvent;
|
||||||
|
import net.minecraft.world.event.GameEvent.Emitter;
|
||||||
|
|
||||||
|
public class useBlockCallback implements UseBlockCallback {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ActionResult interact(PlayerEntity player, World world, Hand hand, BlockHitResult hitResult) {
|
||||||
|
|
||||||
|
Item ItemInHand = player.getMainHandStack().getItem();
|
||||||
|
Block BlockInHand = getBlockFromItem(ItemInHand);
|
||||||
|
//ItemStack ItemStackInHand = player.getMainHandStack();
|
||||||
|
|
||||||
|
player.sendMessage(Text.of(world.getBlockState(hitResult.getBlockPos()).getBlock().toString()));
|
||||||
|
|
||||||
|
if (world.getBlockState(hitResult.getBlockPos()).getBlock().toString().equals("Block{modchest:grid_block}")) {
|
||||||
|
|
||||||
|
if (player.isSpectator() == false) {
|
||||||
|
|
||||||
|
if (BlockInHand instanceof gridBlock) {
|
||||||
|
return ActionResult.PASS;
|
||||||
|
} else {
|
||||||
|
player.sendMessage(Text.of("es hat funktioniert"));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* BlockState StateInHand = BlockInHand.getDefaultState();
|
||||||
|
BlockPos gridBlockPos = hitResult.getBlockPos();
|
||||||
|
world.setBlockState(gridBlockPos, StateInHand);*/
|
||||||
|
//hitResult.getBlockPos().getClass();
|
||||||
|
|
||||||
|
player.getMainHandStack().decrement(1);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//minecraft:blockid
|
||||||
|
|
||||||
|
/* if (player.getMainHandStack().equals("") ){ //TODO: wenn Werkzeuge in MainHand NICHT den MainHandStack reduzieren
|
||||||
|
player.getMainHandStack().decrement(1); //TODO: sobald Hammer existiert darf gridBlock nur noch von diesem abgebaut werden können
|
||||||
|
} else {
|
||||||
|
|
||||||
|
}*/
|
||||||
|
|
||||||
|
|
||||||
|
// BlockState gridBlockState = world.getBlockState(hitResult.getBlockPos());
|
||||||
|
// Block gridBlock = gridBlockState.getBlock();
|
||||||
|
|
||||||
|
//BlockRenderType gridBlockRender = gridBlock.getRenderType(gridBlockState);
|
||||||
|
// BlockRenderType inHandRenderType = BlockInHand.getRenderType(StateInHand);
|
||||||
|
|
||||||
|
// gridBlock.getAppearance(gridBlockState, BlockRenderView renderView,
|
||||||
|
// gridBlockPos, Direction side, BlockState sourceState, BlockPos sourcePos);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* if (inHandRenderType == gridBlockRender){
|
||||||
|
* player.sendMessage(Text.of("Das MODEL ist das MODEL - Scheiße"));
|
||||||
|
* }
|
||||||
|
*/
|
||||||
|
|
||||||
|
// player.sendMessage(Text.of(world.getBlockState(hitResult.getBlockPos()).getBlock().getRenderType(gridBlockState).toString()));
|
||||||
|
|
||||||
|
// BlockRenderType inHandRenderType;
|
||||||
|
// BlockRenderType griBlockRenderType;
|
||||||
|
|
||||||
|
// BlockRenderType griBlockRenderType = BlockInHand.getRenderType(StateInHand);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
return ActionResult.PASS;
|
||||||
|
}
|
||||||
|
return ActionResult.SUCCESS;
|
||||||
|
|
||||||
|
}// mit SUCCESS; FAIL wird kein Block mehr gesetzt
|
||||||
|
// mit PASS; CONSUME; CONSUME_PARTIAL werden immer Blöcke gesetzt
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -1,5 +1,6 @@
|
||||||
{
|
{
|
||||||
"variants":{
|
"variants":{
|
||||||
"": {"model": "modchest:block/grid_block"}
|
"": {"model": "modchest:block/grid_block"}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue