diff --git a/src/main/java/com/teamwizardry/wizardry/Wizardry.java b/src/main/java/com/teamwizardry/wizardry/Wizardry.java index 581875ea1..d4e24f333 100644 --- a/src/main/java/com/teamwizardry/wizardry/Wizardry.java +++ b/src/main/java/com/teamwizardry/wizardry/Wizardry.java @@ -1,6 +1,5 @@ package com.teamwizardry.wizardry; -import com.teamwizardry.librarianlib.features.utilities.UnsafeKt; import com.teamwizardry.wizardry.common.command.CommandWizardry; import com.teamwizardry.wizardry.proxy.CommonProxy; import net.minecraft.world.DimensionType; diff --git a/src/main/java/com/teamwizardry/wizardry/api/ConfigValues.java b/src/main/java/com/teamwizardry/wizardry/api/ConfigValues.java index 981739f5d..c6660df10 100644 --- a/src/main/java/com/teamwizardry/wizardry/api/ConfigValues.java +++ b/src/main/java/com/teamwizardry/wizardry/api/ConfigValues.java @@ -31,6 +31,9 @@ public class ConfigValues { @ConfigProperty(category = "world", comment = "If you have a dimension ID conflict with this mod and something else, change this number") public static int underworldID = 33; + @ConfigProperty(category = "world", comment = "Chance of an underworld boat being generated in a chunk (1 in X)") + public static int underworldBoatChance = 1000; + @ConfigProperty(category = "world", comment = "If you have a dimension ID conflict with this mod and something else, change this number") public static int torikkiID = 34; diff --git a/src/main/java/com/teamwizardry/wizardry/api/capability/player/miscdata/MiscCapabilityStorage.java b/src/main/java/com/teamwizardry/wizardry/api/capability/player/miscdata/MiscCapabilityStorage.java index c385dd0ff..48da1f53a 100644 --- a/src/main/java/com/teamwizardry/wizardry/api/capability/player/miscdata/MiscCapabilityStorage.java +++ b/src/main/java/com/teamwizardry/wizardry/api/capability/player/miscdata/MiscCapabilityStorage.java @@ -1,7 +1,6 @@ package com.teamwizardry.wizardry.api.capability.player.miscdata; import com.teamwizardry.librarianlib.features.helpers.NBTHelper; -import com.teamwizardry.wizardry.common.module.effects.ModuleEffectBackup; import net.minecraft.nbt.NBTBase; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumFacing; diff --git a/src/main/java/com/teamwizardry/wizardry/api/spell/module/IModuleEvent.java b/src/main/java/com/teamwizardry/wizardry/api/spell/module/IModuleEvent.java index 3a7e2d5b5..6108595f6 100644 --- a/src/main/java/com/teamwizardry/wizardry/api/spell/module/IModuleEvent.java +++ b/src/main/java/com/teamwizardry/wizardry/api/spell/module/IModuleEvent.java @@ -1,9 +1,13 @@ package com.teamwizardry.wizardry.api.spell.module; +import com.teamwizardry.wizardry.api.spell.SpellData; +import com.teamwizardry.wizardry.api.spell.SpellRing; +import net.minecraft.world.World; + /** * Interface for event modules.
* - * Usage: Override {@link IRunnableModule#run()} and return true iff following elements from a spell chain must be executed. + * Usage: Override {@link IRunnableModule#run(World, ModuleInstance, SpellData, SpellRing)} and return true iff following elements from a spell chain must be executed. * * @author Avatair */ diff --git a/src/main/java/com/teamwizardry/wizardry/client/core/renderer/HudRenderer.java b/src/main/java/com/teamwizardry/wizardry/client/core/renderer/HudRenderer.java index acf513545..675c32b9b 100644 --- a/src/main/java/com/teamwizardry/wizardry/client/core/renderer/HudRenderer.java +++ b/src/main/java/com/teamwizardry/wizardry/client/core/renderer/HudRenderer.java @@ -1,7 +1,6 @@ package com.teamwizardry.wizardry.client.core.renderer; import com.teamwizardry.librarianlib.core.client.ClientTickHandler; -import com.teamwizardry.librarianlib.features.sprite.ISprite; import com.teamwizardry.librarianlib.features.sprite.Sprite; import com.teamwizardry.librarianlib.features.sprite.Texture; import com.teamwizardry.wizardry.Wizardry; diff --git a/src/main/java/com/teamwizardry/wizardry/client/gui/worktable/ComponentModifiers.java b/src/main/java/com/teamwizardry/wizardry/client/gui/worktable/ComponentModifiers.java index aec29d42f..60bd69882 100644 --- a/src/main/java/com/teamwizardry/wizardry/client/gui/worktable/ComponentModifiers.java +++ b/src/main/java/com/teamwizardry/wizardry/client/gui/worktable/ComponentModifiers.java @@ -17,7 +17,6 @@ import com.teamwizardry.wizardry.api.spell.attribute.AttributeRegistry; import com.teamwizardry.wizardry.api.spell.module.ModuleInstance; import com.teamwizardry.wizardry.api.spell.module.ModuleInstanceModifier; -import com.teamwizardry.wizardry.api.spell.module.ModuleInstanceShape; import com.teamwizardry.wizardry.api.util.RandUtil; import com.teamwizardry.wizardry.init.ModSounds; import net.minecraft.client.Minecraft; diff --git a/src/main/java/com/teamwizardry/wizardry/common/block/BlockUnderworldTeleporter.java b/src/main/java/com/teamwizardry/wizardry/common/block/BlockUnderworldTeleporter.java index e60e09862..71f1a67b6 100644 --- a/src/main/java/com/teamwizardry/wizardry/common/block/BlockUnderworldTeleporter.java +++ b/src/main/java/com/teamwizardry/wizardry/common/block/BlockUnderworldTeleporter.java @@ -1,25 +1,13 @@ package com.teamwizardry.wizardry.common.block; -import com.teamwizardry.librarianlib.features.base.block.BlockMod; import com.teamwizardry.librarianlib.features.base.block.tile.BlockModContainer; -import com.teamwizardry.wizardry.Wizardry; import com.teamwizardry.wizardry.api.ConfigValues; import com.teamwizardry.wizardry.common.tile.TileUnderworldPortal; -import net.minecraft.block.BlockEndPortal; -import net.minecraft.block.BlockLadder; -import net.minecraft.block.ITileEntityProvider; -import net.minecraft.block.material.MapColor; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; -import net.minecraft.tileentity.TileEntityEndPortal; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; -import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/src/main/java/com/teamwizardry/wizardry/common/block/wisdomwood/BlockWisdomSapling.java b/src/main/java/com/teamwizardry/wizardry/common/block/wisdomwood/BlockWisdomSapling.java index 55c52e86f..3b81a56ab 100644 --- a/src/main/java/com/teamwizardry/wizardry/common/block/wisdomwood/BlockWisdomSapling.java +++ b/src/main/java/com/teamwizardry/wizardry/common/block/wisdomwood/BlockWisdomSapling.java @@ -1,7 +1,6 @@ package com.teamwizardry.wizardry.common.block.wisdomwood; import com.teamwizardry.librarianlib.features.base.block.BlockModSapling; -import com.teamwizardry.wizardry.common.world.WorldGeneratorWisdomTree; import com.teamwizardry.wizardry.init.ModBlocks; import net.minecraft.block.state.IBlockState; diff --git a/src/main/java/com/teamwizardry/wizardry/common/command/CommandTeleportTorikki.java b/src/main/java/com/teamwizardry/wizardry/common/command/CommandTeleportTorikki.java index 57ad3cad7..6305b32e1 100644 --- a/src/main/java/com/teamwizardry/wizardry/common/command/CommandTeleportTorikki.java +++ b/src/main/java/com/teamwizardry/wizardry/common/command/CommandTeleportTorikki.java @@ -1,7 +1,5 @@ package com.teamwizardry.wizardry.common.command; -import com.teamwizardry.wizardry.Wizardry; -import com.teamwizardry.wizardry.api.util.TeleportUtil; import net.minecraft.command.CommandBase; import net.minecraft.command.ICommandSender; import net.minecraft.entity.Entity; diff --git a/src/main/java/com/teamwizardry/wizardry/common/entity/EntityFairy.java b/src/main/java/com/teamwizardry/wizardry/common/entity/EntityFairy.java index 8f16282c5..42fe8f088 100644 --- a/src/main/java/com/teamwizardry/wizardry/common/entity/EntityFairy.java +++ b/src/main/java/com/teamwizardry/wizardry/common/entity/EntityFairy.java @@ -4,7 +4,6 @@ import com.google.common.collect.Lists; import com.teamwizardry.librarianlib.features.helpers.NBTHelper; import com.teamwizardry.librarianlib.features.network.PacketHandler; -import com.teamwizardry.wizardry.api.NBTConstants.NBT; import com.teamwizardry.wizardry.api.entity.fairy.FairyData; import com.teamwizardry.wizardry.api.entity.fairy.fairytasks.FairyTaskController; import com.teamwizardry.wizardry.api.entity.fairy.fairytasks.FairyTaskRegistry; diff --git a/src/main/java/com/teamwizardry/wizardry/common/item/ItemFairyImbuedApple.java b/src/main/java/com/teamwizardry/wizardry/common/item/ItemFairyImbuedApple.java index 0308fe8c6..75ff68d70 100644 --- a/src/main/java/com/teamwizardry/wizardry/common/item/ItemFairyImbuedApple.java +++ b/src/main/java/com/teamwizardry/wizardry/common/item/ItemFairyImbuedApple.java @@ -8,7 +8,6 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.MobEffects; import net.minecraft.item.EnumRarity; -import net.minecraft.item.ItemAppleGold; import net.minecraft.item.ItemStack; import net.minecraft.potion.PotionEffect; import net.minecraft.world.World; diff --git a/src/main/java/com/teamwizardry/wizardry/common/item/ItemMagicWand.java b/src/main/java/com/teamwizardry/wizardry/common/item/ItemMagicWand.java index f682a37c6..0fd8acf2f 100644 --- a/src/main/java/com/teamwizardry/wizardry/common/item/ItemMagicWand.java +++ b/src/main/java/com/teamwizardry/wizardry/common/item/ItemMagicWand.java @@ -3,10 +3,8 @@ import com.teamwizardry.librarianlib.features.base.item.IGlowingItem; import com.teamwizardry.librarianlib.features.base.item.ItemMod; import com.teamwizardry.librarianlib.features.helpers.NBTHelper; -import com.teamwizardry.wizardry.common.entity.EntityFairy; import com.teamwizardry.wizardry.init.ModItems; import net.minecraft.client.renderer.block.model.IBakedModel; -import net.minecraft.enchantment.Enchantment; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.EnumRarity; import net.minecraft.item.ItemStack; diff --git a/src/main/java/com/teamwizardry/wizardry/common/item/ItemStaff.java b/src/main/java/com/teamwizardry/wizardry/common/item/ItemStaff.java index 8a8c878e5..2990d2189 100644 --- a/src/main/java/com/teamwizardry/wizardry/common/item/ItemStaff.java +++ b/src/main/java/com/teamwizardry/wizardry/common/item/ItemStaff.java @@ -18,7 +18,6 @@ import com.teamwizardry.wizardry.common.module.defaults.IModuleOverrides; import com.teamwizardry.wizardry.common.potion.PotionTimeSlow; import com.teamwizardry.wizardry.init.ModItems; -import com.teamwizardry.wizardry.init.ModPotions; import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.creativetab.CreativeTabs; @@ -31,7 +30,6 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTUtil; -import net.minecraft.potion.PotionEffect; import net.minecraft.util.*; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.RayTraceResult; diff --git a/src/main/java/com/teamwizardry/wizardry/common/item/halos/ItemFakeHaloBauble.java b/src/main/java/com/teamwizardry/wizardry/common/item/halos/ItemFakeHaloBauble.java index 6c0df423e..c06249687 100644 --- a/src/main/java/com/teamwizardry/wizardry/common/item/halos/ItemFakeHaloBauble.java +++ b/src/main/java/com/teamwizardry/wizardry/common/item/halos/ItemFakeHaloBauble.java @@ -21,7 +21,6 @@ import org.jetbrains.annotations.Nullable; import javax.annotation.Nonnull; -import java.util.ArrayList; import java.util.List; /** diff --git a/src/main/java/com/teamwizardry/wizardry/common/module/effects/ModuleEffectBackup.java b/src/main/java/com/teamwizardry/wizardry/common/module/effects/ModuleEffectBackup.java index 0c8f3c373..a2fd19c5a 100644 --- a/src/main/java/com/teamwizardry/wizardry/common/module/effects/ModuleEffectBackup.java +++ b/src/main/java/com/teamwizardry/wizardry/common/module/effects/ModuleEffectBackup.java @@ -1,6 +1,5 @@ package com.teamwizardry.wizardry.common.module.effects; -import com.teamwizardry.librarianlib.features.helpers.NBTHelper; import com.teamwizardry.librarianlib.features.math.interpolate.StaticInterp; import com.teamwizardry.librarianlib.features.math.interpolate.numeric.InterpFloatInOut; import com.teamwizardry.librarianlib.features.particle.ParticleBuilder; @@ -9,9 +8,6 @@ import com.teamwizardry.wizardry.Wizardry; import com.teamwizardry.wizardry.api.ConfigValues; import com.teamwizardry.wizardry.api.NBTConstants; -import com.teamwizardry.wizardry.api.capability.player.mana.ManaManager; -import com.teamwizardry.wizardry.api.capability.player.miscdata.IMiscCapability; -import com.teamwizardry.wizardry.api.capability.player.miscdata.MiscCapabilityProvider; import com.teamwizardry.wizardry.api.capability.world.WizardryWorld; import com.teamwizardry.wizardry.api.capability.world.WizardryWorldCapability; import com.teamwizardry.wizardry.api.spell.SpellData; @@ -25,13 +21,8 @@ import com.teamwizardry.wizardry.common.entity.EntityBackupZombie; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumFacing; import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Vec3d; import net.minecraft.world.World; @@ -44,8 +35,6 @@ import javax.annotation.Nonnull; -import java.util.HashMap; -import java.util.Queue; import java.util.UUID; import static com.teamwizardry.wizardry.api.spell.SpellData.DefaultKeys.FACE_HIT; diff --git a/src/main/java/com/teamwizardry/wizardry/common/module/effects/ModuleEffectFrost.java b/src/main/java/com/teamwizardry/wizardry/common/module/effects/ModuleEffectFrost.java index 9b3ea2163..21d0ed9ff 100644 --- a/src/main/java/com/teamwizardry/wizardry/common/module/effects/ModuleEffectFrost.java +++ b/src/main/java/com/teamwizardry/wizardry/common/module/effects/ModuleEffectFrost.java @@ -62,8 +62,8 @@ public boolean onRunZone(World world, SpellData data, SpellRing ring, @ContextRi if (targetPos == null) return false; - Vec3d min = targetPos.subtract(aoe, range, aoe); - Vec3d max = targetPos.add(aoe, range, aoe); + BlockPos min = new BlockPos(targetPos.subtract(aoe, range, aoe)); + BlockPos max = new BlockPos(targetPos.add(aoe, range, aoe)); List entities = world.getEntitiesWithinAABBExcludingEntity(null, new AxisAlignedBB(min, max)); for (Entity entity : entities) { diff --git a/src/main/java/com/teamwizardry/wizardry/common/module/effects/ModuleEffectLowGravity.java b/src/main/java/com/teamwizardry/wizardry/common/module/effects/ModuleEffectLowGravity.java index 8365071bf..1d6a93136 100644 --- a/src/main/java/com/teamwizardry/wizardry/common/module/effects/ModuleEffectLowGravity.java +++ b/src/main/java/com/teamwizardry/wizardry/common/module/effects/ModuleEffectLowGravity.java @@ -55,8 +55,8 @@ public boolean onRunZone(World world, SpellData data, SpellRing ring, @ContextRi if (targetPos == null) return false; - Vec3d min = targetPos.subtract(aoe, range, aoe); - Vec3d max = targetPos.add(aoe, range, aoe); + BlockPos min = new BlockPos(targetPos.subtract(aoe, range, aoe)); + BlockPos max = new BlockPos(targetPos.add(aoe, range, aoe)); List entities = world.getEntitiesWithinAABBExcludingEntity(null, new AxisAlignedBB(min, max)); for (Entity entity : entities) { diff --git a/src/main/java/com/teamwizardry/wizardry/common/module/effects/ModuleEffectThrive.java b/src/main/java/com/teamwizardry/wizardry/common/module/effects/ModuleEffectThrive.java index 873d7ee59..c44029217 100644 --- a/src/main/java/com/teamwizardry/wizardry/common/module/effects/ModuleEffectThrive.java +++ b/src/main/java/com/teamwizardry/wizardry/common/module/effects/ModuleEffectThrive.java @@ -1,11 +1,6 @@ package com.teamwizardry.wizardry.common.module.effects; -import com.teamwizardry.librarianlib.core.LibrarianLib; import com.teamwizardry.librarianlib.features.network.PacketHandler; -import com.teamwizardry.librarianlib.features.particle.ParticleBuilder; -import com.teamwizardry.librarianlib.features.particle.ParticleSpawner; -import com.teamwizardry.wizardry.Wizardry; -import com.teamwizardry.wizardry.api.ConfigValues; import com.teamwizardry.wizardry.api.spell.SpellData; import com.teamwizardry.wizardry.api.spell.SpellRing; import com.teamwizardry.wizardry.api.spell.annotation.RegisterModule; @@ -14,16 +9,12 @@ import com.teamwizardry.wizardry.api.spell.module.ModuleInstanceEffect; import com.teamwizardry.wizardry.api.util.BlockUtils; import com.teamwizardry.wizardry.api.util.RandUtil; -import com.teamwizardry.wizardry.client.core.renderer.StructureErrorRenderer; import com.teamwizardry.wizardry.client.fx.LibParticles; -import com.teamwizardry.wizardry.common.block.BlockCraftingPlate; import com.teamwizardry.wizardry.common.network.PacketThriveBlock; import com.teamwizardry.wizardry.init.ModSounds; import net.minecraft.block.Block; -import net.minecraft.block.BlockFarmland; import net.minecraft.block.IGrowable; import net.minecraft.block.state.IBlockState; -import net.minecraft.client.entity.EntityPlayerSP; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; @@ -31,7 +22,6 @@ import net.minecraft.init.Items; import net.minecraft.item.ItemDye; import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumParticleTypes; import net.minecraft.util.SoundCategory; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Vec3d; diff --git a/src/main/java/com/teamwizardry/wizardry/common/module/effects/ModuleEffectTimeLock.java b/src/main/java/com/teamwizardry/wizardry/common/module/effects/ModuleEffectTimeLock.java index 3400b71f3..b0c0fbca6 100644 --- a/src/main/java/com/teamwizardry/wizardry/common/module/effects/ModuleEffectTimeLock.java +++ b/src/main/java/com/teamwizardry/wizardry/common/module/effects/ModuleEffectTimeLock.java @@ -1,35 +1,5 @@ package com.teamwizardry.wizardry.common.module.effects; -import com.google.common.collect.HashMultimap; -import com.teamwizardry.wizardry.api.spell.IDelayedModule; -import com.teamwizardry.wizardry.api.spell.SpellData; -import com.teamwizardry.wizardry.api.spell.SpellRing; -import com.teamwizardry.wizardry.api.spell.annotation.RegisterModule; -import com.teamwizardry.wizardry.api.spell.attribute.AttributeRegistry; -import com.teamwizardry.wizardry.api.spell.module.IModuleEffect; -import com.teamwizardry.wizardry.api.spell.module.ModuleInstanceEffect; -import com.teamwizardry.wizardry.api.util.RandUtil; -import com.teamwizardry.wizardry.client.fx.LibParticles; -import com.teamwizardry.wizardry.common.core.WizardryNemezManager; -import com.teamwizardry.wizardry.common.core.nemez.NemezEventHandler; -import com.teamwizardry.wizardry.common.core.nemez.NemezTracker; -import com.teamwizardry.wizardry.init.ModPotions; -import com.teamwizardry.wizardry.init.ModSounds; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.SoundCategory; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; -import org.jetbrains.annotations.NotNull; - -import javax.annotation.Nonnull; -import java.awt.*; -import java.util.UUID; - /** * Created by Demoniaque. */ diff --git a/src/main/java/com/teamwizardry/wizardry/common/module/effects/ModuleEffectTimeSlow.java b/src/main/java/com/teamwizardry/wizardry/common/module/effects/ModuleEffectTimeSlow.java index b913edb08..e8ddb0a4a 100644 --- a/src/main/java/com/teamwizardry/wizardry/common/module/effects/ModuleEffectTimeSlow.java +++ b/src/main/java/com/teamwizardry/wizardry/common/module/effects/ModuleEffectTimeSlow.java @@ -83,8 +83,8 @@ public boolean onRunZone(World world, SpellData data, SpellRing ring, @ContextRi if (targetPos == null) return false; - Vec3d min = targetPos.subtract(aoe, range, aoe); - Vec3d max = targetPos.add(aoe, range, aoe); + BlockPos min = new BlockPos(targetPos.subtract(aoe, range, aoe)); + BlockPos max = new BlockPos(targetPos.add(aoe, range, aoe)); List entities = world.getEntitiesWithinAABBExcludingEntity(null, new AxisAlignedBB(min, max)); for (Entity entity : entities) { diff --git a/src/main/java/com/teamwizardry/wizardry/common/module/effects/vanish/ModuleEffectVanish.java b/src/main/java/com/teamwizardry/wizardry/common/module/effects/vanish/ModuleEffectVanish.java index d2966e192..e1f3b9642 100644 --- a/src/main/java/com/teamwizardry/wizardry/common/module/effects/vanish/ModuleEffectVanish.java +++ b/src/main/java/com/teamwizardry/wizardry/common/module/effects/vanish/ModuleEffectVanish.java @@ -18,6 +18,7 @@ import net.minecraft.potion.PotionEffect; import net.minecraft.util.SoundCategory; import net.minecraft.util.math.AxisAlignedBB; +import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Vec3d; import net.minecraft.world.World; import net.minecraftforge.fml.relauncher.Side; @@ -47,8 +48,8 @@ public boolean onRunZone(World world, SpellData data, SpellRing ring, @ContextRi if (targetPos == null) return false; - Vec3d min = targetPos.subtract(aoe, range, aoe); - Vec3d max = targetPos.add(aoe, range, aoe); + BlockPos min = new BlockPos(targetPos.subtract(aoe, range, aoe)); + BlockPos max = new BlockPos(targetPos.add(aoe, range, aoe)); List entities = world.getEntitiesWithinAABBExcludingEntity(null, new AxisAlignedBB(min, max)); for (Entity entity : entities) { diff --git a/src/main/java/com/teamwizardry/wizardry/common/network/PacketClearCraftingPlate.java b/src/main/java/com/teamwizardry/wizardry/common/network/PacketClearCraftingPlate.java index d7aa2c3c7..be6d18735 100644 --- a/src/main/java/com/teamwizardry/wizardry/common/network/PacketClearCraftingPlate.java +++ b/src/main/java/com/teamwizardry/wizardry/common/network/PacketClearCraftingPlate.java @@ -4,7 +4,6 @@ import com.teamwizardry.librarianlib.features.autoregister.PacketRegister; import com.teamwizardry.librarianlib.features.network.PacketBase; import com.teamwizardry.librarianlib.features.saving.Save; -import com.teamwizardry.wizardry.Wizardry; import com.teamwizardry.wizardry.client.render.block.TileCraftingPlateRenderer; import com.teamwizardry.wizardry.common.tile.TileCraftingPlate; import net.minecraft.item.ItemStack; diff --git a/src/main/java/com/teamwizardry/wizardry/common/potion/PotionTimeLock.java b/src/main/java/com/teamwizardry/wizardry/common/potion/PotionTimeLock.java index 784aabb7f..adaeadee2 100644 --- a/src/main/java/com/teamwizardry/wizardry/common/potion/PotionTimeLock.java +++ b/src/main/java/com/teamwizardry/wizardry/common/potion/PotionTimeLock.java @@ -1,21 +1,7 @@ package com.teamwizardry.wizardry.common.potion; -import com.teamwizardry.wizardry.common.core.WizardryNemezManager; -import com.teamwizardry.wizardry.common.core.nemez.NemezTracker; // import com.teamwizardry.wizardry.common.module.effects.ModuleEffectTimeLock; -import com.teamwizardry.wizardry.init.ModPotions; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.ai.attributes.AbstractAttributeMap; -import net.minecraftforge.event.entity.item.ItemTossEvent; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.common.gameevent.PlayerEvent; -import net.minecraftforge.fml.common.gameevent.TickEvent; -import net.minecraftforge.fml.relauncher.Side; -import javax.annotation.Nonnull; -import java.util.List; -import java.util.UUID; /** * Created by Demoniaque. diff --git a/src/main/java/com/teamwizardry/wizardry/common/potion/PotionTimeSlow.java b/src/main/java/com/teamwizardry/wizardry/common/potion/PotionTimeSlow.java index 685110d20..2c35cf041 100644 --- a/src/main/java/com/teamwizardry/wizardry/common/potion/PotionTimeSlow.java +++ b/src/main/java/com/teamwizardry/wizardry/common/potion/PotionTimeSlow.java @@ -16,11 +16,8 @@ import net.minecraft.entity.boss.dragon.phase.IPhase; import net.minecraft.entity.boss.dragon.phase.PhaseList; import net.minecraft.entity.monster.EntityCreeper; -import net.minecraft.item.ItemEnderEye; import net.minecraft.potion.PotionEffect; import net.minecraft.util.SoundCategory; -import net.minecraft.world.World; -import net.minecraftforge.client.event.MouseEvent; import net.minecraftforge.event.entity.living.LivingEntityUseItemEvent; import net.minecraftforge.event.entity.living.LivingEvent; import net.minecraftforge.event.entity.living.LivingFallEvent; @@ -32,7 +29,6 @@ import net.minecraftforge.fml.common.gameevent.PlayerEvent; import javax.annotation.Nonnull; -import java.util.logging.Logger; /** * Created by Demoniaque. diff --git a/src/main/java/com/teamwizardry/wizardry/common/tile/TileUnderworldPortal.java b/src/main/java/com/teamwizardry/wizardry/common/tile/TileUnderworldPortal.java index 15da7accd..7f45e10de 100644 --- a/src/main/java/com/teamwizardry/wizardry/common/tile/TileUnderworldPortal.java +++ b/src/main/java/com/teamwizardry/wizardry/common/tile/TileUnderworldPortal.java @@ -1,7 +1,6 @@ package com.teamwizardry.wizardry.common.tile; import net.minecraft.tileentity.TileEntity; -import net.minecraft.tileentity.TileEntityEndPortal; import net.minecraft.util.EnumFacing; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; diff --git a/src/main/java/com/teamwizardry/wizardry/common/world/biome/BiomeUnderWorld.java b/src/main/java/com/teamwizardry/wizardry/common/world/biome/BiomeUnderWorld.java index b1b4eca70..d5f63ff4a 100644 --- a/src/main/java/com/teamwizardry/wizardry/common/world/biome/BiomeUnderWorld.java +++ b/src/main/java/com/teamwizardry/wizardry/common/world/biome/BiomeUnderWorld.java @@ -15,7 +15,6 @@ import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLiving.SpawnPlacementType; import net.minecraft.init.Blocks; -import net.minecraft.util.EnumFacing; import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos.MutableBlockPos; @@ -24,7 +23,6 @@ import net.minecraft.world.biome.Biome; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.gameevent.TickEvent; -import net.minecraftforge.fml.common.registry.EntityRegistry; /** * Created by Demoniaque44 diff --git a/src/main/java/com/teamwizardry/wizardry/common/world/underworld/ChunkGeneratorUnderWorld.java b/src/main/java/com/teamwizardry/wizardry/common/world/underworld/ChunkGeneratorUnderWorld.java index a51f1bede..a08ee15e2 100644 --- a/src/main/java/com/teamwizardry/wizardry/common/world/underworld/ChunkGeneratorUnderWorld.java +++ b/src/main/java/com/teamwizardry/wizardry/common/world/underworld/ChunkGeneratorUnderWorld.java @@ -1,17 +1,9 @@ package com.teamwizardry.wizardry.common.world.underworld; -import java.util.ArrayList; -import java.util.LinkedList; -import java.util.List; - -import javax.annotation.Nonnull; -import javax.annotation.Nullable; - +import com.teamwizardry.wizardry.api.ConfigValues; import com.teamwizardry.wizardry.api.util.RandUtil; -import com.teamwizardry.wizardry.api.util.RandUtilSeed; import com.teamwizardry.wizardry.common.block.BlockCloud; import com.teamwizardry.wizardry.init.ModBlocks; - import kotlin.Pair; import net.minecraft.entity.EnumCreatureType; import net.minecraft.init.Blocks; @@ -24,11 +16,17 @@ import net.minecraft.world.gen.IChunkGenerator; import net.minecraft.world.gen.NoiseGeneratorPerlin; +import javax.annotation.Nonnull; +import javax.annotation.Nullable; +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; +import java.util.Random; + /** * Created by Demoniaque44 */ -public class ChunkGeneratorUnderWorld implements IChunkGenerator -{ +public class ChunkGeneratorUnderWorld implements IChunkGenerator { private static final int UPPER_LEVEL = 102; private static final int LOWER_LEVEL = 105; private static final double UPPER_X_SCALE = 12.0; @@ -37,54 +35,47 @@ public class ChunkGeneratorUnderWorld implements IChunkGenerator private static final double LOWER_X_SCALE = 16.0; private static final double LOWER_Y_SCALE = 1.75; private static final double LOWER_Z_SCALE = 16.0; + private final UnderWorldBoat boat = new UnderWorldBoat(); - private NoiseGeneratorPerlin upper; - private NoiseGeneratorPerlin lower; + private final NoiseGeneratorPerlin upper; + private final NoiseGeneratorPerlin lower; - private World world; + private Random random; + private final World world; - public ChunkGeneratorUnderWorld(World worldIn) - { + public ChunkGeneratorUnderWorld(World worldIn) { this.world = worldIn; upper = new NoiseGeneratorPerlin(RandUtil.random, 4); lower = new NoiseGeneratorPerlin(RandUtil.random, 4); } - public ChunkGeneratorUnderWorld(World world, long seed) - { + public ChunkGeneratorUnderWorld(World world, long seed) { this.world = world; - RandUtilSeed rand = new RandUtilSeed(seed); - upper = new NoiseGeneratorPerlin(rand.random, 4); - lower = new NoiseGeneratorPerlin(rand.random, 4); + this.random = new Random(seed); + upper = new NoiseGeneratorPerlin(random, 4); + lower = new NoiseGeneratorPerlin(random, 4); } - private List> generate(int chunkX, int chunkZ, ChunkPrimer primer) - { + private List> generate(int chunkX, int chunkZ, ChunkPrimer primer) { double[][] upperValues = new double[16][16]; double[][] lowerValues = new double[16][16]; - for (int x = 0; x < 16; x++) - { - for (int z = 0; z < 16; z++) - { + for (int x = 0; x < 16; x++) { + for (int z = 0; z < 16; z++) { upperValues[x][z] = upper.getValue((chunkX * 16 + x) / UPPER_X_SCALE, (chunkZ * 16 + z) / UPPER_Z_SCALE); lowerValues[x][z] = lower.getValue((chunkX * 16 + x) / LOWER_X_SCALE, (chunkZ * 16 + z) / LOWER_Z_SCALE); } } List> litBlocks = new LinkedList<>(); - for (int x = 0; x < 16; x++) - { - for (int z = 0; z < 16; z++) - { + for (int x = 0; x < 16; x++) { + for (int z = 0; z < 16; z++) { int minY = (int) (lowerValues[x][z] * LOWER_Y_SCALE + LOWER_LEVEL); int maxY = (int) (upperValues[x][z] * UPPER_Y_SCALE + UPPER_LEVEL); litBlocks.add(new Pair<>(new BlockPos(chunkX * 16 + x, minY, chunkZ * 16 + z), new BlockPos(chunkX * 16 + x, maxY, chunkZ * 16 + z))); - for (int y = minY; y <= maxY; y++) - { + for (int y = minY; y <= maxY; y++) { if (y == minY) primer.setBlockState(x, y, z, ModBlocks.CLOUD.getDefaultState().withProperty(BlockCloud.HAS_LIGHT_VALUE, true)); - else - { + else { // if (y >= minY + 6 && y <= maxY - 6) // primer.setBlockState(x, y, z, // ModFluids.LETHE.getActualBlock().getDefaultState()); @@ -99,8 +90,7 @@ private List> generate(int chunkX, int chunkZ, ChunkPri @Nonnull @Override - public Chunk generateChunk(int x, int z) - { + public Chunk generateChunk(int x, int z) { ChunkPrimer chunkprimer = new ChunkPrimer(); // Get a list of blocks to check lighting for, as a "side effect" of @@ -109,25 +99,35 @@ public Chunk generateChunk(int x, int z) Chunk chunk = new Chunk(world, chunkprimer, x, z); - litBlocks.forEach(pair -> - { + litBlocks.forEach(pair -> { BlockPos lower = pair.getFirst(); BlockPos upper = pair.getSecond(); - for (int i = 0; i < 15; i++) - { + for (int i = 0; i < 15; i++) { if (lower.getY() + i > upper.getY()) return; chunk.setLightFor(EnumSkyBlock.BLOCK, lower.up(i), 15 - i); } }); - + return chunk; } @Override - public void populate(int x, int z) - { - if (x / 16 == 0 && z / 16 == 0) - { + public void populate(int x, int z) { + // Set the seed to the world random + random.setSeed(world.getSeed()); + long l = random.nextLong() / 2L * 2L + 1L; + long i1 = random.nextLong() / 2L * 2L + 1L; + this.random.setSeed((x * l) + (z * i1) ^ world.getSeed()); + + // Generate the boat + if (this.random.nextInt(ConfigValues.underworldBoatChance) == 0) { + int i = x * 16 + this.random.nextInt(16); + int k = z * 16 + this.random.nextInt(16); + this.boat.generate(this.world, this.random, new BlockPos(i, 108, k)); + } + + + if (x / 16 == 0 && z / 16 == 0) { for (int i = -3; i < 3; i++) for (int j = -3; j < 3; j++) world.setBlockState(new BlockPos(i, 100, j), Blocks.OBSIDIAN.getDefaultState()); @@ -139,32 +139,28 @@ public void populate(int x, int z) } @Override - public boolean generateStructures(@Nonnull Chunk chunkIn, int x, int z) - { + public boolean generateStructures(@Nonnull Chunk chunkIn, int x, int z) { return false; } @Nonnull @Override - public List getPossibleCreatures(@Nonnull EnumCreatureType creatureType, @Nonnull BlockPos pos) - { + public List getPossibleCreatures(@Nonnull EnumCreatureType creatureType, @Nonnull BlockPos pos) { return new ArrayList<>(); } @Nullable @Override - public BlockPos getNearestStructurePos(@Nonnull World worldIn, @Nonnull String structureName, @Nonnull BlockPos position, boolean findUnexplored) - { + public BlockPos getNearestStructurePos(@Nonnull World worldIn, @Nonnull String structureName, @Nonnull BlockPos position, boolean findUnexplored) { return null; } @Override - public void recreateStructures(@Nonnull Chunk chunkIn, int x, int z) - {} + public void recreateStructures(@Nonnull Chunk chunkIn, int x, int z) { + } @Override - public boolean isInsideStructure(@Nonnull World worldIn, @Nonnull String structureName, @Nonnull BlockPos pos) - { + public boolean isInsideStructure(@Nonnull World worldIn, @Nonnull String structureName, @Nonnull BlockPos pos) { return false; } } diff --git a/src/main/java/com/teamwizardry/wizardry/common/world/underworld/UnderWorldBoat.java b/src/main/java/com/teamwizardry/wizardry/common/world/underworld/UnderWorldBoat.java new file mode 100644 index 000000000..5d36c60a9 --- /dev/null +++ b/src/main/java/com/teamwizardry/wizardry/common/world/underworld/UnderWorldBoat.java @@ -0,0 +1,54 @@ +package com.teamwizardry.wizardry.common.world.underworld; + +import com.teamwizardry.wizardry.Wizardry; +import com.teamwizardry.wizardry.proxy.CommonProxy; +import net.minecraft.init.Blocks; +import net.minecraft.server.MinecraftServer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.tileentity.TileEntityChest; +import net.minecraft.util.Mirror; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.Rotation; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; +import net.minecraft.world.gen.structure.template.PlacementSettings; +import net.minecraft.world.gen.structure.template.Template; +import net.minecraft.world.gen.structure.template.TemplateManager; + +import java.util.Map; +import java.util.Random; + +public class UnderWorldBoat extends WorldGenerator { + + @Override + public boolean generate(World world, Random rand, BlockPos position) { + MinecraftServer minecraftServer = world.getMinecraftServer(); + TemplateManager templateManager = world.getSaveHandler().getStructureTemplateManager(); + Template underworldBoat = templateManager.getTemplate(minecraftServer, new ResourceLocation(Wizardry.MODID, "underworld_boat")); + + PlacementSettings placementSettings = new PlacementSettings(); + Rotation rotation = Rotation.values()[rand.nextInt(Rotation.values().length)]; + placementSettings.setIgnoreEntities(false).setMirror(Mirror.NONE).setRotation(rotation).setIgnoreStructureBlock(false); + + underworldBoat.addBlocksToWorld(world, position, placementSettings); + + // Get the data blocks to add custom loot to the boat + Map dataBlocks = underworldBoat.getDataBlocks(position, placementSettings); + for (Map.Entry entry : dataBlocks.entrySet()) { + if (entry.getValue().equals("lootchest")) { + BlockPos blockPos = entry.getKey(); + world.setBlockState(blockPos, Blocks.AIR.getDefaultState(), 3); + TileEntity tileEntity = world.getTileEntity(blockPos.down()); + + if (tileEntity instanceof TileEntityChest) { + ((TileEntityChest) tileEntity).setLootTable(CommonProxy.UNDERWORLD_BOAT_CHEST, rand.nextLong()); + } + } + } + + + return true; + } + +} diff --git a/src/main/java/com/teamwizardry/wizardry/init/ModBiomes.java b/src/main/java/com/teamwizardry/wizardry/init/ModBiomes.java index c25cdb7a0..d73c09ae3 100644 --- a/src/main/java/com/teamwizardry/wizardry/init/ModBiomes.java +++ b/src/main/java/com/teamwizardry/wizardry/init/ModBiomes.java @@ -1,7 +1,5 @@ package com.teamwizardry.wizardry.init; -import com.teamwizardry.wizardry.common.world.biome.BiomeTorikki; -import com.teamwizardry.wizardry.common.world.biome.BiomeTorikkiSea; import com.teamwizardry.wizardry.common.world.biome.BiomeUnderWorld; import net.minecraft.world.biome.Biome; import net.minecraftforge.common.BiomeDictionary; diff --git a/src/main/java/com/teamwizardry/wizardry/init/ModEntities.java b/src/main/java/com/teamwizardry/wizardry/init/ModEntities.java index 0013a2670..ba90e881a 100644 --- a/src/main/java/com/teamwizardry/wizardry/init/ModEntities.java +++ b/src/main/java/com/teamwizardry/wizardry/init/ModEntities.java @@ -5,7 +5,6 @@ import com.teamwizardry.wizardry.client.render.entity.ModelSpiritBlight; import com.teamwizardry.wizardry.client.render.entity.ModelSpiritWight; import com.teamwizardry.wizardry.client.render.entity.ModelUnicorn; -import com.teamwizardry.wizardry.client.render.entity.ModelZachriel; import com.teamwizardry.wizardry.client.render.entity.RenderBomb; import com.teamwizardry.wizardry.client.render.entity.RenderFairy; import com.teamwizardry.wizardry.client.render.entity.RenderHaloInfusionItem; @@ -15,8 +14,6 @@ import com.teamwizardry.wizardry.client.render.entity.RenderSpiritWight; import com.teamwizardry.wizardry.client.render.entity.RenderSummonZombie; import com.teamwizardry.wizardry.client.render.entity.RenderUnicorn; -import com.teamwizardry.wizardry.client.render.entity.RenderZachriel; -import com.teamwizardry.wizardry.client.render.entity.RenderZachrielCorruption; import com.teamwizardry.wizardry.common.entity.EntityBackupZombie; import com.teamwizardry.wizardry.common.entity.EntityBomb; import com.teamwizardry.wizardry.common.entity.EntityFairy; @@ -25,8 +22,6 @@ import com.teamwizardry.wizardry.common.entity.EntitySpiritBlight; import com.teamwizardry.wizardry.common.entity.EntitySpiritWight; import com.teamwizardry.wizardry.common.entity.EntityUnicorn; -import com.teamwizardry.wizardry.common.entity.angel.zachriel.EntityCorruptionProjectile; -import com.teamwizardry.wizardry.common.entity.angel.zachriel.EntityZachriel; import com.teamwizardry.wizardry.common.entity.projectile.EntityLightningProjectile; import com.teamwizardry.wizardry.common.entity.projectile.EntitySpellProjectile; diff --git a/src/main/java/com/teamwizardry/wizardry/proxy/CommonProxy.java b/src/main/java/com/teamwizardry/wizardry/proxy/CommonProxy.java index de4bf4d97..79a7338d9 100644 --- a/src/main/java/com/teamwizardry/wizardry/proxy/CommonProxy.java +++ b/src/main/java/com/teamwizardry/wizardry/proxy/CommonProxy.java @@ -23,7 +23,6 @@ import com.teamwizardry.wizardry.common.module.effects.ModuleEffectLeap; import com.teamwizardry.wizardry.common.module.effects.ModuleEffectTimeSlow; import com.teamwizardry.wizardry.common.network.*; -import com.teamwizardry.wizardry.common.world.trickery.WorldProviderTorikki; import com.teamwizardry.wizardry.common.world.underworld.WorldProviderUnderWorld; import com.teamwizardry.wizardry.crafting.burnable.FireRecipes; import com.teamwizardry.wizardry.crafting.mana.ManaRecipes; @@ -31,7 +30,9 @@ import com.teamwizardry.wizardry.init.plugin.PluginLoaderContext; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumHand; +import net.minecraft.util.ResourceLocation; import net.minecraft.world.DimensionType; +import net.minecraft.world.storage.loot.LootTableList; import net.minecraftforge.common.DimensionManager; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.fml.common.event.FMLInitializationEvent; @@ -46,6 +47,7 @@ public class CommonProxy { private File directory; + public static final ResourceLocation UNDERWORLD_BOAT_CHEST = new ResourceLocation(Wizardry.MODID, "underworld_boat_chest"); public File getWizardryDirectory() { return directory; @@ -81,6 +83,9 @@ public void preInit(FMLPreInitializationEvent event) { NetworkRegistry.INSTANCE.registerGuiHandler(Wizardry.instance, new GuiHandler()); + // Loot tables + LootTableList.register(UNDERWORLD_BOAT_CHEST); + Wizardry.underWorld = DimensionType.register("underworld", "_dim", ConfigValues.underworldID, WorldProviderUnderWorld.class, false); // Wizardry.torikki = DimensionType.register("torikki", "_dim", ConfigValues.torikkiID, WorldProviderTorikki.class, false); DimensionManager.registerDimension(ConfigValues.underworldID, Wizardry.underWorld); diff --git a/src/main/resources/assets/wizardry/loot_tables/underworld_boat_chest.json b/src/main/resources/assets/wizardry/loot_tables/underworld_boat_chest.json new file mode 100644 index 000000000..fbf048f41 --- /dev/null +++ b/src/main/resources/assets/wizardry/loot_tables/underworld_boat_chest.json @@ -0,0 +1,53 @@ +{ + "pools": [ + { + "name": "common", + "rolls": { + "min": 5, + "max": 10 + }, + "entries": [ + { + "type": "item", + "weight": 15, + "name": "wizardry:fairy_dust" + }, + { + "type": "item", + "weight": 5, + "name": "wizardry:fairy_wings" + }, + { + "type": "item", + "weight": 2, + "name": "wizardry:unicorn_horn" + }, + { + "type": "item", + "weight": 20, + "name": "wizardry:wisdom_sapling", + "functions": [ + { + "function": "set_count", + "count": { + "min": 1, + "max": 4 + } + } + ] + }, + { + "type": "item", + "weight": 2, + "name": "wizardry:orb", + "functions": [ + { + "function": "set_nbt", + "tag": "{mana:10}" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/wizardry/structures/underworld_boat.nbt b/src/main/resources/assets/wizardry/structures/underworld_boat.nbt new file mode 100644 index 000000000..351293068 Binary files /dev/null and b/src/main/resources/assets/wizardry/structures/underworld_boat.nbt differ