Class BasicMeteorLaserBlock
java.lang.Object
net.minecraft.world.level.block.state.BlockBehaviour
net.minecraft.world.level.block.Block
net.minecraft.world.level.block.BaseEntityBlock
me.emafire003.dev.ohmymeteors.blocks.basic_laser.BasicMeteorLaserBlock
- All Implemented Interfaces:
net.fabricmc.fabric.api.block.v1.FabricBlock, net.minecraft.world.flag.FeatureElement, net.minecraft.world.level.block.EntityBlock, net.minecraft.world.level.ItemLike
- Direct Known Subclasses:
AdvancedMeteorLaserBlock
public class BasicMeteorLaserBlock
extends net.minecraft.world.level.block.BaseEntityBlock
implements net.minecraft.world.level.block.EntityBlock
-
Nested Class Summary
Nested classes/interfaces inherited from class net.minecraft.world.level.block.Block
net.minecraft.world.level.block.Block.UpdateFlagsNested classes/interfaces inherited from class net.minecraft.world.level.block.state.BlockBehaviour
net.minecraft.world.level.block.state.BlockBehaviour.BlockStateBase, net.minecraft.world.level.block.state.BlockBehaviour.OffsetFunction, net.minecraft.world.level.block.state.BlockBehaviour.OffsetType, net.minecraft.world.level.block.state.BlockBehaviour.PostProcess, net.minecraft.world.level.block.state.BlockBehaviour.Properties, net.minecraft.world.level.block.state.BlockBehaviour.StateArgumentPredicate<A>, net.minecraft.world.level.block.state.BlockBehaviour.StatePredicateNested classes/interfaces inherited from interface net.fabricmc.fabric.api.block.v1.FabricBlock
net.fabricmc.fabric.api.block.v1.FabricBlock.FabricProperties -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final net.minecraft.world.level.block.state.properties.BooleanPropertyUsed to display the "firing" texture of the laser model.static final net.minecraft.world.level.block.state.properties.BooleanPropertystatic final net.minecraft.world.level.block.state.properties.BooleanPropertyThis is used when interacting with the block.Fields inherited from class net.minecraft.world.level.block.Block
BLOCK_STATE_REGISTRY, CODEC, INDESTRUCTIBLE, INSTANT, stateDefinition, UPDATE_ALL, UPDATE_ALL_IMMEDIATE, UPDATE_CLIENTS, UPDATE_IMMEDIATE, UPDATE_INVISIBLE, UPDATE_KNOWN_SHAPE, UPDATE_LIMIT, UPDATE_MOVE_BY_PISTON, UPDATE_NEIGHBORS, UPDATE_NONE, UPDATE_SKIP_ALL_SIDEEFFECTS, UPDATE_SKIP_BLOCK_ENTITY_SIDEEFFECTS, UPDATE_SKIP_ON_PLACE, UPDATE_SKIP_SHAPE_UPDATE_ON_WIRE, UPDATE_SUPPRESS_DROPSFields inherited from class net.minecraft.world.level.block.state.BlockBehaviour
descriptionId, drops, dynamicShape, explosionResistance, friction, hasCollision, isRandomlyTicking, jumpFactor, properties, requiredFeatures, soundType, speedFactor, UPDATE_SHAPE_ORDERFields inherited from interface net.minecraft.world.flag.FeatureElement
FILTERED_REGISTRIES -
Constructor Summary
ConstructorsConstructorDescriptionBasicMeteorLaserBlock(net.minecraft.world.level.block.state.BlockBehaviour.Properties settings) -
Method Summary
Modifier and TypeMethodDescriptionstatic booleanstatic voidWakes up all the lasers to check for meteors above them.protected @NonNull com.mojang.serialization.MapCodec<? extends net.minecraft.world.level.block.BaseEntityBlock> codec()protected voidcreateBlockStateDefinition(net.minecraft.world.level.block.state.StateDefinition.Builder<net.minecraft.world.level.block.Block, net.minecraft.world.level.block.state.BlockState> builder) protected static intprotected net.minecraft.world.level.block.RenderShapegetRenderShape(net.minecraft.world.level.block.state.BlockState state) protected net.minecraft.world.phys.shapes.VoxelShapegetShape(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.BlockGetter world, net.minecraft.core.BlockPos pos, net.minecraft.world.phys.shapes.CollisionContext context) <T extends net.minecraft.world.level.block.entity.BlockEntity>
@Nullable net.minecraft.world.level.block.entity.BlockEntityTicker<T> getTicker(net.minecraft.world.level.Level world, net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.block.entity.BlockEntityType<T> type) protected static intnet.minecraft.world.phys.shapes.VoxelShape@Nullable net.minecraft.world.level.block.entity.BlockEntitynewBlockEntity(net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState state) static voidputInCooldown(net.minecraft.world.level.block.entity.BlockEntity entity) Puts a laser block in cooldown for some timestatic voidremoveCooldown(net.minecraft.world.level.block.entity.BlockEntity entity, net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.Level world, net.minecraft.core.BlockPos pos) protected static voidtick(net.minecraft.world.level.Level world, net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState state, BasicMeteorLaserBlockEntity blockEntity) This is the main logic of the block.protected net.minecraft.world.InteractionResultuseItemOn(net.minecraft.world.item.ItemStack stack, net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.Level world, net.minecraft.core.BlockPos pos, net.minecraft.world.entity.player.Player player, net.minecraft.world.InteractionHand hand, net.minecraft.world.phys.BlockHitResult hit) Methods inherited from class net.minecraft.world.level.block.BaseEntityBlock
createTickerHelper, getMenuProvider, triggerEventMethods inherited from class net.minecraft.world.level.block.Block
animateTick, asBlock, asItem, box, boxes, boxZ, boxZ, boxZ, builtInRegistryHolder, byItem, canSupportCenter, canSupportRigidBlock, column, column, cube, cube, defaultBlockState, destroy, dropFromBlockInteractLootTable, dropFromExplosion, dropFromLootTable, dropResources, dropResources, dropResources, fallOn, getDrops, getDrops, getExplosionResistance, getFriction, getId, getJumpFactor, getName, getShapeForEachState, getShapeForEachState, getSpeedFactor, getStateDefinition, getStateForPlacement, handlePrecipitation, hasDynamicShape, isExceptionForConnection, isFaceFull, isPossibleToRespawnInThis, isShapeFullBlock, playerDestroy, playerWillDestroy, popExperience, popResource, popResourceFromFace, pushEntitiesUp, registerDefaultState, setPlacedBy, shouldRenderFace, spawnDestroyParticles, stateById, stepOn, toString, tryDropExperience, updateEntityMovementAfterFallOn, updateFromNeighbourShapes, updateOrDestroy, updateOrDestroy, wasExploded, withPropertiesOfMethods inherited from class net.minecraft.world.level.block.state.BlockBehaviour
affectNeighborsAfterRemoval, attack, canBeReplaced, canBeReplaced, canSurvive, defaultDestroyTime, defaultMapColor, entityInside, getAnalogOutputSignal, getBlockSupportShape, getCloneItemStack, getCollisionShape, getDescriptionId, getDestroyProgress, getDirectSignal, getDrops, getEntityInsideCollisionShape, getFluidState, getInteractionShape, getLightDampening, getLootTable, getMaxHorizontalOffset, getMaxVerticalOffset, getOcclusionShape, getSeed, getShadeBrightness, getSignal, getSoundType, getVisualShape, hasAnalogOutputSignal, isCollisionShapeFullBlock, isPathfindable, isRandomlyTicking, isSignalSource, mirror, neighborChanged, onExplosionHit, onPlace, onProjectileHit, propagatesSkylightDown, properties, propertiesCodec, randomTick, requiredFeatures, rotate, shouldChangedStateKeepBlockEntity, simpleCodec, skipRendering, spawnAfterBreak, tick, updateIndirectNeighbourShapes, updateShape, useShapeForLightOcclusion, useWithoutItemMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface net.minecraft.world.level.block.EntityBlock
getListenerMethods inherited from interface net.fabricmc.fabric.api.block.v1.FabricBlock
getAppearanceMethods inherited from interface net.minecraft.world.flag.FeatureElement
isEnabled
-
Field Details
-
SHOW_AREA
public static final net.minecraft.world.level.block.state.properties.BooleanProperty SHOW_AREAThis is used when interacting with the block. With a normal click the checking area will get highlited by particles -
FIRING
public static final net.minecraft.world.level.block.state.properties.BooleanProperty FIRINGUsed to display the "firing" texture of the laser model. Is true when it has just shot down a meteor -
IN_COOLDOWN
public static final net.minecraft.world.level.block.state.properties.BooleanProperty IN_COOLDOWN
-
-
Constructor Details
-
BasicMeteorLaserBlock
public BasicMeteorLaserBlock(net.minecraft.world.level.block.state.BlockBehaviour.Properties settings)
-
-
Method Details
-
codec
protected @NonNull com.mojang.serialization.MapCodec<? extends net.minecraft.world.level.block.BaseEntityBlock> codec()- Specified by:
codecin classnet.minecraft.world.level.block.BaseEntityBlock
-
newBlockEntity
@Nullable public @Nullable net.minecraft.world.level.block.entity.BlockEntity newBlockEntity(net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState state) - Specified by:
newBlockEntityin interfacenet.minecraft.world.level.block.EntityBlock
-
getRenderShape
protected net.minecraft.world.level.block.RenderShape getRenderShape(net.minecraft.world.level.block.state.BlockState state) - Overrides:
getRenderShapein classnet.minecraft.world.level.block.state.BlockBehaviour
-
getTicker
@Nullable public <T extends net.minecraft.world.level.block.entity.BlockEntity> @Nullable net.minecraft.world.level.block.entity.BlockEntityTicker<T> getTicker(net.minecraft.world.level.Level world, net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.block.entity.BlockEntityType<T> type) - Specified by:
getTickerin interfacenet.minecraft.world.level.block.EntityBlock
-
awakeLasers
public static void awakeLasers()Wakes up all the lasers to check for meteors above them. They automatically go back to sleep afterAWAKE_TIME_LIMITticks -
areLasersAwake
public static boolean areLasersAwake() -
useItemOn
protected net.minecraft.world.InteractionResult useItemOn(net.minecraft.world.item.ItemStack stack, net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.Level world, net.minecraft.core.BlockPos pos, net.minecraft.world.entity.player.Player player, net.minecraft.world.InteractionHand hand, net.minecraft.world.phys.BlockHitResult hit) - Overrides:
useItemOnin classnet.minecraft.world.level.block.state.BlockBehaviour
-
putInCooldown
public static void putInCooldown(net.minecraft.world.level.block.entity.BlockEntity entity) Puts a laser block in cooldown for some time -
removeCooldown
public static void removeCooldown(net.minecraft.world.level.block.entity.BlockEntity entity, net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.Level world, net.minecraft.core.BlockPos pos) -
tick
protected static void tick(net.minecraft.world.level.Level world, net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState state, BasicMeteorLaserBlockEntity blockEntity) This is the main logic of the block. Will check every tick the space around the y level where meteors spawn to see if a meteor has spawned. If it has, it shoots it down. -
getYLevelAreaCoverage
protected static int getYLevelAreaCoverage() -
getRadiusAreaCoverage
protected static int getRadiusAreaCoverage() -
createBlockStateDefinition
protected void createBlockStateDefinition(net.minecraft.world.level.block.state.StateDefinition.Builder<net.minecraft.world.level.block.Block, net.minecraft.world.level.block.state.BlockState> builder) - Overrides:
createBlockStateDefinitionin classnet.minecraft.world.level.block.Block
-
makeShape
public net.minecraft.world.phys.shapes.VoxelShape makeShape() -
getShape
protected net.minecraft.world.phys.shapes.VoxelShape getShape(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.BlockGetter world, net.minecraft.core.BlockPos pos, net.minecraft.world.phys.shapes.CollisionContext context) - Overrides:
getShapein classnet.minecraft.world.level.block.state.BlockBehaviour
-