Display flying when an elytra is used with the trinkets mod. Closes #2074

This commit is contained in:
modmuss50 2020-04-11 15:12:13 +01:00
parent 8b16fe191b
commit 9612c82cd3
4 changed files with 43 additions and 1 deletions

View file

@ -43,6 +43,13 @@ repositories {
//Dev Mode
url "https://maven.jamieswhiteshirt.com/libs-release/"
}
maven {
//trinkets
url = "https://maven.abusedmaster.xyz/"
}
maven {
url = "https://jitpack.io"
}
}
version = "3.3.7"
@ -74,6 +81,7 @@ dependencies {
optionalDependency ("me.shedaniel:RoughlyEnoughItems:3.6.0")
optionalDependency ('io.github.cottonmc:LibCD:2.0.1+1.15')
optionalDependency ('com.github.emilyploszaj:trinkets:2.4.2')
def rcVersion = 'RebornCore:RebornCore-1.15:+'
modApi (rcVersion) {

View file

@ -26,7 +26,9 @@ package techreborn;
import net.fabricmc.api.ModInitializer;
import net.fabricmc.fabric.api.client.itemgroup.FabricItemGroupBuilder;
import net.fabricmc.loader.api.FabricLoader;
import net.minecraft.block.ComposterBlock;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.fluid.Fluids;
import net.minecraft.item.ItemGroup;
import net.minecraft.item.ItemStack;
@ -40,6 +42,7 @@ import reborncore.common.util.Torus;
import reborncore.common.world.DataAttachment;
import techreborn.blockentity.storage.energy.idsu.IDSUManager;
import techreborn.client.GuiType;
import techreborn.compat.trinkets.Trinkets;
import techreborn.config.TechRebornConfig;
import techreborn.events.ModRegistry;
import techreborn.init.FluidGeneratorRecipes;
@ -55,6 +58,8 @@ import techreborn.packets.ServerboundPackets;
import techreborn.utils.PoweredCraftingHandler;
import techreborn.world.WorldGenerator;
import java.util.function.Predicate;
public class TechReborn implements ModInitializer {
public static final String MOD_ID = "techreborn";
@ -65,6 +70,8 @@ public class TechReborn implements ModInitializer {
new Identifier("techreborn", "item_group"),
() -> new ItemStack(TRContent.NUKE));
public static Predicate<PlayerEntity> elytraPredicate = playerEntity -> false;
@Override
public void onInitialize() {
INSTANCE = this;
@ -104,6 +111,10 @@ public class TechReborn implements ModInitializer {
ComposterBlock.ITEM_TO_LEVEL_INCREASE_CHANCE.put(TRContent.Dusts.SAW.asItem(), 0.3F);
ComposterBlock.ITEM_TO_LEVEL_INCREASE_CHANCE.put(TRContent.SmallDusts.SAW.asItem(), 0.1F);
if (FabricLoader.getInstance().isModLoaded("trinkets")) {
elytraPredicate = Trinkets.isElytraEquipped();
}
LOGGER.info("TechReborn setup done!");
}

View file

@ -0,0 +1,23 @@
package techreborn.compat.trinkets;
import dev.emi.trinkets.api.TrinketComponent;
import dev.emi.trinkets.api.TrinketsApi;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.Items;
import java.util.function.Predicate;
public class Trinkets {
public static Predicate<PlayerEntity> isElytraEquipped() {
return playerEntity -> {
TrinketComponent component = TrinketsApi.getTrinketComponent(playerEntity);
for (int i = 0; i < component.getInventory().getInvSize(); i++) {
if (component.getInventory().getInvStack(i).getItem() == Items.ELYTRA) {
return true;
}
}
return false;
};
}
}

View file

@ -91,7 +91,7 @@ public class QuantumSuitItem extends TRArmourItem implements ItemStackModifiers,
}
break;
case CHEST:
if (Energy.of(stack).getEnergy() > flyCost) {
if (Energy.of(stack).getEnergy() > flyCost && !TechReborn.elytraPredicate.test(playerEntity)) {
playerEntity.abilities.allowFlying = true;
if (playerEntity.abilities.flying) {
Energy.of(stack).use(flyCost);