Interface EnvironmentController
- All Known Implementing Classes:
EmptyEnvironmentController,EnvironmentControllerDecorator
The default implementation is provided by EmptyEnvironmentController which sets all values to either 0, false,
or null by default, except where noted. However, if you wish you may extend (or even replace!) the functionality of
the default controller by use of the EnvironmentControllerDecorator. It is best to do this through the
initialize event in EnvironmentControllerInitializeEvent
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptiondefault intapplyAwareHeat(TemperatureAware temperatureAware, int locationHeat) Deprecated.Use the passive effects inLivingEntityTemperatureTickEventsdoublegetBaseValueForAttribute(net.minecraft.core.Holder<net.minecraft.world.entity.ai.attributes.Attribute> attribute, net.minecraft.world.entity.LivingEntity entity) Deprecated, for removal: This API element is subject to removal in a future version.default @Nullable EnvironmentControllerDeprecated, for removal: This API element is subject to removal in a future version.Gets the controller that this controller decorates.default intgetEnvironmentTemperatureForPlayer(net.minecraft.world.entity.player.Player player, int localTemperature) Deprecated.Replaced withServerPlayerEnvironmentTickEventsintgetFloorTemperature(net.minecraft.world.entity.LivingEntity entity, net.minecraft.world.level.Level world, net.minecraft.world.level.block.state.BlockState state, net.minecraft.core.BlockPos pos) Deprecated.Use the passive effects inLivingEntityTemperatureTickEventsintgetHeatAtLocation(net.minecraft.world.level.Level world, net.minecraft.core.BlockPos pos) Deprecated.Use the passive effects inLivingEntityTemperatureTickEventsintgetHeatFromBlockState(net.minecraft.world.level.block.state.BlockState state) Deprecated.Use the passive effects inLivingEntityTemperatureTickEventsintgetLocalTemperatureChange(net.minecraft.world.level.Level world, net.minecraft.core.BlockPos pos) Deprecated.Replaced withServerPlayerEnvironmentTickEventsdefault intgetMaxWetTicks(Soakable soakable) Deprecated.Replaced with an attribute:ThermooAttributes.MAX_SOAKING_TICK_MULTIPLIERintgetSoakChange(Soakable soakable) Deprecated.Replaced withLivingEntitySoakingTickEventsintgetTemperatureEffectsChange(net.minecraft.world.entity.LivingEntity entity) Deprecated.Use the active effects inLivingEntityTemperatureTickEventsbooleanisAreaHeated(net.minecraft.world.level.Level world, net.minecraft.core.BlockPos pos) Deprecated.Use the passive effects inLivingEntityTemperatureTickEventsbooleanisColdSource(net.minecraft.world.level.block.state.BlockState state) Deprecated.Use the passive effects inLivingEntityTemperatureTickEventsbooleanisHeatSource(net.minecraft.world.level.block.state.BlockState state) Deprecated.Use the passive effects inLivingEntityTemperatureTickEvents
-
Method Details
-
getDecorated
Deprecated, for removal: This API element is subject to removal in a future version.Gets the controller that this controller decorates. If this controller is a leaf (not a decorator), then returns null.- Returns:
- Returns the environment controller that this controller decorates. Returns null if this decorates no controller (i.e., is a leaf)
-
getBaseValueForAttribute
@Deprecated(since="4.3", forRemoval=true) double getBaseValueForAttribute(net.minecraft.core.Holder<net.minecraft.world.entity.ai.attributes.Attribute> attribute, net.minecraft.world.entity.LivingEntity entity) Deprecated, for removal: This API element is subject to removal in a future version.Gets the base value for one of theThermooAttributes. If the return of this method is non-zero, then this value will be applied as an attribute modifier to theentitywhen the entity is created, with the addition operation. This method is called for each of the Thermoo attributes.- Parameters:
attribute- The attribute to get the base value for. Strictly the attributes inThermooAttributes.entity- The entity to apply the attribute to.- Returns:
- Returns the base value for the attribute to apply to the entity.
-
getLocalTemperatureChange
@Deprecated(since="4.4") int getLocalTemperatureChange(net.minecraft.world.level.Level world, net.minecraft.core.BlockPos pos) Deprecated.Replaced withServerPlayerEnvironmentTickEventsComputes the local temperature change from the environment at a given position in a world.- Parameters:
world- The worldpos- The position in that world- Returns:
- The passive temperature change at
posinworld.
-
getEnvironmentTemperatureForPlayer
@Deprecated(since="4.4") default int getEnvironmentTemperatureForPlayer(net.minecraft.world.entity.player.Player player, int localTemperature) Deprecated.Replaced withServerPlayerEnvironmentTickEventsComputes the environmental temperature change for a player, based on a local temperature computed fromgetLocalTemperatureChange(Level, BlockPos).By default, this returns the value of
localTemperature, and NOT0.- Parameters:
player- The player to compute the temperature change forlocalTemperature- The base local temperature- Returns:
- Returns the passive environmental temperature change for the player this tick
-
getTemperatureEffectsChange
@Deprecated(since="4.4") int getTemperatureEffectsChange(net.minecraft.world.entity.LivingEntity entity) Deprecated.Use the active effects inLivingEntityTemperatureTickEventsComputes temperature changes forLivingEntitys from heat effects. For example, being on fire or freezing in powder snow- Parameters:
entity- The entity to tick warmth effects for- Returns:
- Returns the temperature change that should be applied
-
getFloorTemperature
@Deprecated(since="4.4") int getFloorTemperature(net.minecraft.world.entity.LivingEntity entity, net.minecraft.world.level.Level world, net.minecraft.world.level.block.state.BlockState state, net.minecraft.core.BlockPos pos) Deprecated.Use the passive effects inLivingEntityTemperatureTickEventsGets the amount of warmth generated by a floor block state for a given entity.Hot floor is different from
getHeatFromBlockState(BlockState), as it ONLY applies to entities stepping on the block - it does not affect the area around the block. An example implementation would be to provide warmth fromBlocks.MAGMA_BLOCK, but not provide area heat.You can also use this for blocks that are cold to step on.
- Parameters:
entity- The entity that is stepping on the givenstateworld- The world/level where the floor is locatedstate- The state of the floor. This is exactly the state at theposin theworldpos- The position of the world in the world- Returns:
- Returns the heat to apply each tick to entities standing on the block state
-
getMaxWetTicks
Deprecated.Replaced with an attribute:ThermooAttributes.MAX_SOAKING_TICK_MULTIPLIERGets the default maximum wet ticks for thesoakable.Important note - so that behaviour will remain consistent with previous versions, this will return
600by default, instead of the normal0for this type.- Parameters:
soakable- The soakable to get the max wet ticks for.- Returns:
- Returns the default maximum wet ticks for the
soakable
-
getSoakChange
Deprecated.Replaced withLivingEntitySoakingTickEventsGets the wetness increase for aSoakablethis tick- Parameters:
soakable- The soakable to compute increase for- Returns:
- Returns the soaking change for the player.
-
getHeatAtLocation
@Deprecated(since="4.4") int getHeatAtLocation(net.minecraft.world.level.Level world, net.minecraft.core.BlockPos pos) Deprecated.Use the passive effects inLivingEntityTemperatureTickEventsCalculates the passive warmth nearby heat sources at a location in a world. 'Heat sources' being things that exist in the world that produce heat around them. For example, this could include artificial light producing sources, such as torches, campfires, lit furnaces, glowstone, and more.This can also be negative, to indicate a cold position.
- Parameters:
world- The world the temperature aware is inpos- The position to check- Returns:
- Returns the temperature change that should be applied from nearby temperature sources.
-
applyAwareHeat
@Deprecated(since="4.4") default int applyAwareHeat(TemperatureAware temperatureAware, int locationHeat) Deprecated.Use the passive effects inLivingEntityTemperatureTickEventsGets the heat from nearby heat sources to apply to a Temperature Aware this tick.By default, the temperature aware will accept all heat from nearby heat sources.
- Parameters:
temperatureAware- The temperature aware affected.locationHeat- The heat at the temperature aware's location, as computed bygetHeatAtLocation(Level, BlockPos)- Returns:
- Returns
locationHeatby default.
-
getHeatFromBlockState
@Deprecated(since="4.4") int getHeatFromBlockState(net.minecraft.world.level.block.state.BlockState state) Deprecated.Use the passive effects inLivingEntityTemperatureTickEventsCalculates the heat produced by a block state. May be negative, indicating a cold source.- Parameters:
state- The block state heat source- Returns:
- The warmth that the state produces around it
-
isHeatSource
@Deprecated(since="4.4") boolean isHeatSource(net.minecraft.world.level.block.state.BlockState state) Deprecated.Use the passive effects inLivingEntityTemperatureTickEventsChecks if a block state is a heat source, as defined by this controller.- Parameters:
state- The block state to check- Returns:
- Returns if a block state is a heat source
- See Also:
-
isColdSource
@Deprecated(since="4.4") boolean isColdSource(net.minecraft.world.level.block.state.BlockState state) Deprecated.Use the passive effects inLivingEntityTemperatureTickEventsChecks if a block state is a cold source, as defined by this controller.- Parameters:
state- The block state to check- Returns:
- Returns true if a block state is a cold source
- See Also:
-
isAreaHeated
@Deprecated(since="4.4") boolean isAreaHeated(net.minecraft.world.level.Level world, net.minecraft.core.BlockPos pos) Deprecated.Use the passive effects inLivingEntityTemperatureTickEventsCheck if a position in a world is heated- Parameters:
world- The world of the positionpos- The position to check- Returns:
- Returns if the location in the world is heated
- See Also:
-