1
0
mirror of https://github.com/chylex/Hardcore-Ender-Expansion-2.git synced 2025-04-11 03:15:44 +02:00

Implement Ender Causatum stage triggers for entered territories

This commit is contained in:
chylex 2019-12-13 18:27:53 +01:00
parent 291a61162e
commit 08a14fddab
3 changed files with 19 additions and 2 deletions
src/main/java/chylex/hee/game

View File

@ -2,12 +2,15 @@ package chylex.hee.game.block
import chylex.hee.game.block.entity.TileEntityEndPortalAcceptor
import chylex.hee.game.block.entity.TileEntityPortalInner
import chylex.hee.game.block.info.BlockBuilder
import chylex.hee.game.mechanics.causatum.CausatumStage
import chylex.hee.game.mechanics.causatum.EnderCausatum
import chylex.hee.game.mechanics.portal.DimensionTeleporter
import chylex.hee.game.mechanics.portal.EntityPortalContact
import chylex.hee.init.ModBlocks
import chylex.hee.system.util.Pos
import chylex.hee.system.util.closestTickingTile
import net.minecraft.entity.Entity
import net.minecraft.entity.player.EntityPlayer
import net.minecraft.tileentity.TileEntity
import net.minecraft.util.math.BlockPos
import net.minecraft.world.World
@ -33,6 +36,10 @@ class BlockEndPortalInner(builder: BlockBuilder) : BlockAbstractPortal(builder){
(min, max) -> DimensionTeleporter.LastEndPortal.updateForEntity(entity, Pos((min.x + max.x) / 2, pos.y, (min.z + max.z) / 2))
}
if (entity is EntityPlayer){
EnderCausatum.triggerStage(entity, CausatumStage.S2_ENTERED_END)
}
entity.changeDimension(1, DimensionTeleporter.EndSpawnPortal)
}
}

View File

@ -5,6 +5,7 @@ import chylex.hee.game.block.entity.TileEntityPortalInner
import chylex.hee.game.block.entity.TileEntityVoidPortalStorage
import chylex.hee.game.block.info.BlockBuilder
import chylex.hee.game.block.util.Property
import chylex.hee.game.mechanics.causatum.EnderCausatum
import chylex.hee.game.mechanics.portal.DimensionTeleporter
import chylex.hee.game.mechanics.portal.EntityPortalContact
import chylex.hee.game.mechanics.portal.SpawnInfo
@ -48,6 +49,10 @@ class BlockVoidPortalInner(builder: BlockBuilder) : BlockAbstractPortal(builder)
val targetVec = info.pos.center.subtractY(0.45)
if (entity is EntityLivingBase){
if (entity is EntityPlayer){
TerritoryInstance.fromPos(info.pos)?.let { EnderCausatum.triggerStage(entity, it.territory.stage) }
}
info.yaw?.let { entity.rotationYaw = it }
entity.rotationPitch = 0F

View File

@ -1,4 +1,7 @@
package chylex.hee.game.world.territory
import chylex.hee.game.mechanics.causatum.CausatumStage
import chylex.hee.game.mechanics.causatum.CausatumStage.S2_ENTERED_END
import chylex.hee.game.mechanics.causatum.CausatumStage.S3_FINISHED_CURSED_LIBRARY
import chylex.hee.game.world.generation.SegmentedWorld
import chylex.hee.game.world.generation.TerritoryGenerationInfo
import chylex.hee.game.world.territory.descriptions.Territory_ArcaneConjunctions
@ -21,7 +24,8 @@ enum class TerritoryType(
val desc: ITerritoryDescription,
val gen: ITerritoryGenerator,
val chunks: Int,
val height: IntRange
val height: IntRange,
val stage: CausatumStage = S2_ENTERED_END
){
THE_HUB(
title = "the_hub",
@ -108,7 +112,8 @@ enum class TerritoryType(
desc = TerritoryDummy,
gen = GeneratorDummy,
chunks = 34,
height = 128 until 256
height = 128 until 256,
stage = S3_FINISHED_CURSED_LIBRARY
);
companion object{