51 left YIPEE

This commit is contained in:
DaCodia
2024-08-06 23:57:00 -05:00
parent f6031652c2
commit f957e697d9
39 changed files with 147 additions and 367 deletions

View File

@@ -3,18 +3,17 @@ package com.drmangotea.createindustry.base;
import com.tterrag.registrate.AbstractRegistrate;
import com.tterrag.registrate.builders.BuilderCallback;
import com.tterrag.registrate.builders.FluidBuilder;
import com.tterrag.registrate.fabric.SimpleFlowableFluid;
import com.tterrag.registrate.util.nullness.NonNullFunction;
import com.tterrag.registrate.util.nullness.NonNullSupplier;
import net.minecraft.resources.ResourceLocation;
import net.minecraftforge.fluids.ForgeFlowingFluid;
import net.minecraftforge.fluids.ForgeFlowingFluid.Properties;
public class GasFluidBuilder<T extends ForgeFlowingFluid, P> extends FluidBuilder<T, P> {
public class GasFluidBuilder<T extends SimpleFlowableFluid, P> extends FluidBuilder<T, P> {
public GasFluidBuilder(AbstractRegistrate<?> owner, P parent, String name, BuilderCallback callback,
ResourceLocation stillTexture, ResourceLocation flowingTexture, FluidBuilder.FluidTypeFactory typeFactory,
NonNullFunction<Properties, T> factory) {
super(owner, parent, name, callback, stillTexture, flowingTexture, typeFactory, factory);
ResourceLocation stillTexture, ResourceLocation flowingTexture,
NonNullFunction<SimpleFlowableFluid.Properties, T> factory) {
super(owner, parent, name, callback, stillTexture, flowingTexture, factory);
source(factory);
}
@@ -23,6 +22,4 @@ public class GasFluidBuilder<T extends ForgeFlowingFluid, P> extends FluidBuilde
return this::getEntry;
}
}

View File

@@ -3,17 +3,18 @@ package com.drmangotea.createindustry.base.creative_mode_tabs;
import java.util.Collection;
import com.drmangotea.createindustry.CreateTFMG;
import com.simibubi.create.compat.jei.CreateJEI;
import com.tterrag.registrate.util.entry.RegistryEntry;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.entity.ItemRenderer;
import net.minecraft.client.resources.model.BakedModel;
import net.minecraft.core.NonNullList;
import net.minecraft.core.Registry;
import net.minecraft.world.item.BlockItem;
import net.minecraft.world.item.CreativeModeTab;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;
import net.minecraftforge.registries.ForgeRegistries;
public abstract class TFMGCreativeModeTab extends CreativeModeTab {
public TFMGCreativeModeTab(String id) {
@@ -28,7 +29,7 @@ public abstract class TFMGCreativeModeTab extends CreativeModeTab {
}
protected Collection<RegistryEntry<Item>> registeredItems() {
return CreateTFMG.REGISTRATE.getAll(ForgeRegistries.ITEMS.getRegistryKey());
return CreateTFMG.REGISTRATE.getAll(Registry.ITEM.key());
}
public void addBlocks(NonNullList<ItemStack> items) {

View File

@@ -10,6 +10,8 @@ import com.tterrag.registrate.providers.RegistrateRecipeProvider;
import com.tterrag.registrate.util.nullness.NonNullBiConsumer;
import com.tterrag.registrate.util.nullness.NonNullFunction;
import com.tterrag.registrate.util.nullness.NonNullSupplier;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.core.Direction;
import net.minecraft.resources.ResourceLocation;
@@ -18,8 +20,6 @@ import net.minecraft.world.item.Item;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.state.BlockBehaviour;
import net.minecraft.world.level.block.state.properties.BlockStateProperties;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.client.model.generators.ConfiguredModel;
import java.util.Optional;
@@ -74,7 +74,7 @@ public class TFMGPaletteBlockPattern {
private NonNullFunction<NonNullSupplier<Block>, NonNullBiConsumer<DataGenContext<Block, ? extends Block>, RegistrateRecipeProvider>> additionalRecipes;
private TFMGPaletteBlockPartial<? extends Block>[] partials;
@OnlyIn(Dist.CLIENT)
@Environment(EnvType.CLIENT)
private RenderType renderType;
private static TFMGPaletteBlockPattern create(String name, TFMGPaletteBlockPattern.PatternNameType nameType,

View File

@@ -6,6 +6,8 @@ import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.math.Matrix3f;
import com.mojang.math.Matrix4f;
import com.mojang.math.Vector3f;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.entity.EntityRenderer;
@@ -13,10 +15,8 @@ import net.minecraft.client.renderer.entity.EntityRendererProvider;
import net.minecraft.client.renderer.texture.OverlayTexture;
import net.minecraft.core.BlockPos;
import net.minecraft.resources.ResourceLocation;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
@OnlyIn(Dist.CLIENT)
@Environment(EnvType.CLIENT)
public class BlueSparkRenderer extends EntityRenderer<BlueSpark> {
private static final ResourceLocation TEXTURE_LOCATION = CreateTFMG.asResource("textures/entity/blue_spark.png");
private static final RenderType RENDER_TYPE = RenderType.entityCutoutNoCull(TEXTURE_LOCATION);

View File

@@ -6,6 +6,8 @@ import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.math.Matrix3f;
import com.mojang.math.Matrix4f;
import com.mojang.math.Vector3f;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.entity.EntityRenderer;
@@ -13,10 +15,8 @@ import net.minecraft.client.renderer.entity.EntityRendererProvider;
import net.minecraft.client.renderer.texture.OverlayTexture;
import net.minecraft.core.BlockPos;
import net.minecraft.resources.ResourceLocation;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
@OnlyIn(Dist.CLIENT)
@Environment(EnvType.CLIENT)
public class GreenSparkRenderer extends EntityRenderer<GreenSpark> {
private static final ResourceLocation TEXTURE_LOCATION = CreateTFMG.asResource("textures/entity/green_spark.png");
private static final RenderType RENDER_TYPE = RenderType.entityCutoutNoCull(TEXTURE_LOCATION);

View File

@@ -5,6 +5,8 @@ import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.math.Matrix3f;
import com.mojang.math.Matrix4f;
import com.mojang.math.Vector3f;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.entity.EntityRenderer;
@@ -12,10 +14,8 @@ import net.minecraft.client.renderer.entity.EntityRendererProvider;
import net.minecraft.client.renderer.texture.OverlayTexture;
import net.minecraft.core.BlockPos;
import net.minecraft.resources.ResourceLocation;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
@OnlyIn(Dist.CLIENT)
@Environment(EnvType.CLIENT)
public class SparkRenderer extends EntityRenderer<Spark> {
private static final ResourceLocation TEXTURE_LOCATION = new ResourceLocation("textures/particle/lava.png");
private static final RenderType RENDER_TYPE = RenderType.entityCutoutNoCull(TEXTURE_LOCATION);

View File

@@ -0,0 +1,33 @@
package com.drmangotea.createindustry.blocks.electricity.api;
import net.fabricmc.fabric.api.transfer.v1.storage.TransferVariant;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.FriendlyByteBuf;
import org.jetbrains.annotations.Nullable;
public class Energy implements TransferVariant<Double> {
@Override
public boolean isBlank() {
return false;
}
@Override
public Double getObject() {
return null;
}
@Override
public @Nullable CompoundTag getNbt() {
return null;
}
@Override
public CompoundTag toNbt() {
return null;
}
@Override
public void toPacket(FriendlyByteBuf buf) {
}
}

View File

@@ -0,0 +1,24 @@
package com.drmangotea.createindustry.blocks.electricity.api;
import net.fabricmc.fabric.api.transfer.v1.storage.base.SingleVariantStorage;
import org.jetbrains.annotations.ApiStatus;
@ApiStatus.Experimental
public class EnergyStorage extends SingleVariantStorage<Energy> {
public EnergyStorage(long i) {
this.variant = new Energy();
this.amount = i;
}
@Override
protected Energy getBlankVariant() {
return null;
}
@Override
protected long getCapacity(Energy variant) {
return 0;
}
}

View File

@@ -1,6 +1,7 @@
package com.drmangotea.createindustry.blocks.electricity.base.cables;
import com.drmangotea.createindustry.base.TFMGTools;
import com.drmangotea.createindustry.blocks.electricity.api.EnergyStorage;
import com.drmangotea.createindustry.blocks.electricity.base.*;
import com.drmangotea.createindustry.blocks.electricity.resistors.ResistorBlockEntity;
import com.drmangotea.createindustry.registry.TFMGItems;
@@ -217,8 +218,7 @@ public class CableConnectorBlockEntity extends ElectricBlockEntity {
}else
if(be1!=null) {
} else if(be1!=null) {
if (be1.getCapability(ForgeCapabilities.ENERGY, direction.getOpposite()).isPresent()) {

View File

@@ -415,7 +415,7 @@ public class DieselEngineBlockEntity extends SmartBlockEntity implements IHaveGo
@Nullable
@OnlyIn(Dist.CLIENT)
@Environment(EnvType.CLIENT)
public Float getTargetAngle() {
float angle = 0;
BlockState blockState = getBlockState();

View File

@@ -55,9 +55,7 @@ public class SteelFluidTankRenderer extends SafeBlockEntityRenderer<SteelTankBlo
if (fluidStack.isEmpty())
return;
boolean top = fluidStack.getFluid()
.getFluidType()
.isLighterThanAir();
boolean top = fluidStack.getType().getFluid().defaultFluidState().is;
float xMin = tankHullWidth;
float xMax = xMin + te.width - 2 * tankHullWidth;

View File

@@ -17,6 +17,8 @@ import io.github.fabricators_of_create.porting_lib.transfer.fluid.FluidTank;
import io.github.fabricators_of_create.porting_lib.util.FluidStack;
import io.github.fabricators_of_create.porting_lib.util.LazyOptional;
import net.fabricmc.fabric.api.transfer.v1.fluid.FluidVariant;
import net.fabricmc.fabric.api.transfer.v1.transaction.Transaction;
import net.fabricmc.fabric.api.transfer.v1.transaction.TransactionContext;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.nbt.CompoundTag;
@@ -150,8 +152,7 @@ public class SteelTankBlockEntity extends FluidTankBlockEntity implements IHaveG
if (!hasLevel())
return;
FluidVariant attributes = newFluidStack.getFluid()
.getFluidType();
FluidVariant attributes = newFluidStack.getType();
int luminosity = (int) (attributes.getLightLevel(newFluidStack) / 1.2f);
boolean reversed = attributes.isLighterThanAir();
int maxY = (int) ((getFillState() * height) + 1);
@@ -212,7 +213,7 @@ public class SteelTankBlockEntity extends FluidTankBlockEntity implements IHaveG
tankInventory.setCapacity(blocks * getCapacityMultiplier());
long overflow = tankInventory.getFluidAmount() - tankInventory.getCapacity();
if (overflow > 0)
tankInventory.drain(overflow, FluidAction.EXECUTE);
tankInventory.extract(tankInventory.variant, overflow, Transaction.openOuter());
forceFluidLevelUpdate = true;
}

View File

@@ -121,10 +121,10 @@ public class SteelTankItem extends BlockItem {
if (SteelTankBlock.isTank(blockState))
continue;
BlockPlaceContext context = BlockPlaceContext.at(ctx, offsetPos, face);
player.getPersistentData()
player.getExtraCustomData()
.putBoolean("SilenceTankSound", true);
super.place(context);
player.getPersistentData()
player.getExtraCustomData()
.remove("SilenceTankSound");
}
}

View File

@@ -1,22 +0,0 @@
package com.drmangotea.createindustry.items;
import net.minecraft.world.item.BucketItem;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.crafting.RecipeType;
import net.minecraft.world.level.material.Fluid;
import org.jetbrains.annotations.Nullable;
public class BadFuelBucketItem extends BucketItem {
public BadFuelBucketItem(Fluid p_40689_, Properties p_40690_) {
super(p_40689_, p_40690_);
}
public BadFuelBucketItem(java.util.function.Supplier<? extends Fluid> supplier, Item.Properties builder) {
super(supplier,builder);
}
@Override
public int getBurnTime(ItemStack itemStack, @Nullable RecipeType<?> recipeType) {
return 200;
}
}

View File

@@ -1,25 +0,0 @@
package com.drmangotea.createindustry.items;
import net.minecraft.world.item.BlockItem;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.crafting.RecipeType;
import net.minecraft.world.level.block.Block;
import org.jetbrains.annotations.Nullable;
public class CoalCokeBlockItem extends BlockItem {
public CoalCokeBlockItem(Block p_40565_, Properties p_40566_) {
super(p_40565_, p_40566_);
}
@Override
public int getBurnTime(ItemStack itemStack, @Nullable RecipeType<?> recipeType) {
return 28800;
}
}

View File

@@ -1,19 +0,0 @@
package com.drmangotea.createindustry.items;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.crafting.RecipeType;
import org.jetbrains.annotations.Nullable;
public class CoalCokeItem extends Item {
public CoalCokeItem(Properties p_40566_) {
super( p_40566_);
}
@Override
public int getBurnTime(ItemStack itemStack, @Nullable RecipeType<?> recipeType) {
return ;
}
}

View File

@@ -1,25 +0,0 @@
package com.drmangotea.createindustry.items;
import net.minecraft.world.item.BlockItem;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.crafting.RecipeType;
import net.minecraft.world.level.block.Block;
import org.jetbrains.annotations.Nullable;
public class FossilstoneItem extends BlockItem {
public FossilstoneItem(Block p_40565_, Properties p_40566_) {
super(p_40565_, p_40566_);
}
@Override
public int getBurnTime(ItemStack itemStack, @Nullable RecipeType<?> recipeType) {
return 4000;
}
}

View File

@@ -1,21 +0,0 @@
package com.drmangotea.createindustry.items;
import net.minecraft.world.item.BucketItem;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.crafting.RecipeType;
import net.minecraft.world.level.material.Fluid;
import org.jetbrains.annotations.Nullable;
public class OilBucketItem extends BucketItem {
public OilBucketItem(Fluid p_40689_, Properties p_40690_) {
super(p_40689_, p_40690_);
}
public OilBucketItem(java.util.function.Supplier<? extends Fluid> supplier, Properties builder) {
super(supplier,builder);
}
@Override
public int getBurnTime(ItemStack itemStack, @Nullable RecipeType<?> recipeType) {
return 800;
}
}

View File

@@ -4,12 +4,12 @@ import com.drmangotea.createindustry.CreateTFMG;
import com.drmangotea.createindustry.CreateTFMGClient;
import com.simibubi.create.content.equipment.zapper.ShootGadgetPacket;
import com.simibubi.create.content.equipment.zapper.ShootableGadgetRenderHandler;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.phys.Vec3;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
public class AdvancedPotatoCannonPacket extends ShootGadgetPacket {
@@ -46,7 +46,7 @@ public class AdvancedPotatoCannonPacket extends ShootGadgetPacket {
@Override
@OnlyIn(Dist.CLIENT)
@Environment(EnvType.CLIENT)
protected void handleAdditional() {
CreateTFMG.LOGGER.debug("AAAAAAAAAAAAAAAAAAAAAAAAAE");
@@ -54,7 +54,7 @@ public class AdvancedPotatoCannonPacket extends ShootGadgetPacket {
}
@Override
@OnlyIn(Dist.CLIENT)
@Environment(EnvType.CLIENT)
protected ShootableGadgetRenderHandler getHandler() {
return CreateTFMGClient.ADVANCED_POTATO_CANNON_RENDER_HANDLER;
}

View File

@@ -4,6 +4,8 @@ package com.drmangotea.createindustry.items.weapons.advanced_potato_cannon.proje
import com.drmangotea.createindustry.registry.TFMGItems;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.math.Vector3f;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.block.model.ItemTransforms;
import net.minecraft.client.renderer.entity.EntityRenderer;
@@ -12,10 +14,8 @@ import net.minecraft.client.renderer.entity.ItemRenderer;
import net.minecraft.client.renderer.texture.OverlayTexture;
import net.minecraft.client.renderer.texture.TextureAtlas;
import net.minecraft.resources.ResourceLocation;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
@OnlyIn(Dist.CLIENT)
@Environment(EnvType.CLIENT)
public class NapalmPotatoRenderer extends EntityRenderer<NapalmPotato> {
private final ItemRenderer itemRenderer;

View File

@@ -3,6 +3,8 @@ package com.drmangotea.createindustry.items.weapons.explosives.napalm;
import com.drmangotea.createindustry.registry.TFMGBlocks;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.math.Vector3f;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.block.BlockRenderDispatcher;
import net.minecraft.client.renderer.entity.EntityRenderer;
@@ -11,10 +13,8 @@ import net.minecraft.client.renderer.entity.TntMinecartRenderer;
import net.minecraft.client.renderer.texture.TextureAtlas;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
@OnlyIn(Dist.CLIENT)
@Environment(EnvType.CLIENT)
public class NapalmBombRenderer extends EntityRenderer<NapalmBombEntity> {
private final BlockRenderDispatcher blockRenderer;
public NapalmBombRenderer(EntityRendererProvider.Context p_174426_) {

View File

@@ -4,6 +4,8 @@ package com.drmangotea.createindustry.items.weapons.explosives.pipe_bomb;
import com.drmangotea.createindustry.registry.TFMGItems;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.math.Vector3f;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.block.model.ItemTransforms;
import net.minecraft.client.renderer.entity.EntityRenderer;
@@ -12,10 +14,8 @@ import net.minecraft.client.renderer.entity.ItemRenderer;
import net.minecraft.client.renderer.texture.OverlayTexture;
import net.minecraft.client.renderer.texture.TextureAtlas;
import net.minecraft.resources.ResourceLocation;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
@OnlyIn(Dist.CLIENT)
@Environment(EnvType.CLIENT)
public class PipeBombRenderer extends EntityRenderer<PipeBomb> {
private final ItemRenderer itemRenderer;

View File

@@ -4,6 +4,8 @@ package com.drmangotea.createindustry.items.weapons.explosives.thermite_grenades
import com.drmangotea.createindustry.registry.TFMGItems;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.math.Vector3f;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.block.model.ItemTransforms;
import net.minecraft.client.renderer.entity.EntityRenderer;
@@ -12,10 +14,8 @@ import net.minecraft.client.renderer.entity.ItemRenderer;
import net.minecraft.client.renderer.texture.OverlayTexture;
import net.minecraft.client.renderer.texture.TextureAtlas;
import net.minecraft.resources.ResourceLocation;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
@OnlyIn(Dist.CLIENT)
@Environment(EnvType.CLIENT)
public class ThermiteGrenadeRenderer extends EntityRenderer<ThermiteGrenade> {
private final ItemRenderer itemRenderer;
private ChemicalColor chemicalColor;

View File

@@ -32,9 +32,8 @@ public class BlueFireBlock extends BaseFireBlock {
public static final BooleanProperty SOUTH = PipeBlock.SOUTH;
public static final BooleanProperty WEST = PipeBlock.WEST;
public static final BooleanProperty UP = PipeBlock.UP;
private static final Map<Direction, BooleanProperty> PROPERTY_BY_DIRECTION = PipeBlock.PROPERTY_BY_DIRECTION.entrySet().stream().filter((p_53467_) -> {
return p_53467_.getKey() != Direction.DOWN;
}).collect(Util.toMap());
private static final Map<Direction, BooleanProperty> PROPERTY_BY_DIRECTION =
PipeBlock.PROPERTY_BY_DIRECTION.entrySet().stream().filter((p_53467_) -> p_53467_.getKey() != Direction.DOWN).collect(Util.toMap());
private static final VoxelShape UP_AABB = Block.box(0.0D, 15.0D, 0.0D, 16.0D, 16.0D, 16.0D);
private static final VoxelShape WEST_AABB = Block.box(0.0D, 0.0D, 0.0D, 1.0D, 16.0D, 16.0D);
private static final VoxelShape EAST_AABB = Block.box(15.0D, 0.0D, 0.0D, 16.0D, 16.0D, 16.0D);

View File

@@ -37,9 +37,8 @@ public class GreenFireBlock extends BaseFireBlock {
public static final BooleanProperty SOUTH = PipeBlock.SOUTH;
public static final BooleanProperty WEST = PipeBlock.WEST;
public static final BooleanProperty UP = PipeBlock.UP;
private static final Map<Direction, BooleanProperty> PROPERTY_BY_DIRECTION = PipeBlock.PROPERTY_BY_DIRECTION.entrySet().stream().filter((p_53467_) -> {
return p_53467_.getKey() != Direction.DOWN;
}).collect(Util.toMap());
private static final Map<Direction, BooleanProperty> PROPERTY_BY_DIRECTION =
PipeBlock.PROPERTY_BY_DIRECTION.entrySet().stream().filter((p_53467_) -> p_53467_.getKey() != Direction.DOWN).collect(Util.toMap());
private static final VoxelShape UP_AABB = Block.box(0.0D, 15.0D, 0.0D, 16.0D, 16.0D, 16.0D);
private static final VoxelShape WEST_AABB = Block.box(0.0D, 0.0D, 0.0D, 1.0D, 16.0D, 16.0D);
private static final VoxelShape EAST_AABB = Block.box(15.0D, 0.0D, 0.0D, 16.0D, 16.0D, 16.0D);

View File

@@ -143,18 +143,18 @@ return Math.round( 13* ((float)((float)stack.getOrCreateTag().getInt("amount")/(
for(FlamethrowerFuel fuel : FlamethrowerFuel.values()) {
String fluid = be.getFluid(0).getFluid().getFluidType().toString().replaceFirst("createindustry:","");
String fluid = be.getFluid(0).getType().toString().replaceFirst("createindustry:","");
if (fluid.equals(fuel.name().toLowerCase())) {
if(nbt.getString("fuel").equals(fluid)||nbt.getInt("amount")==0) {
int toDrain = Math.min(FUEL_CAPACITY - nbt.getInt("amount"), be.getFluid(0).getAmount());
long toDrain = Math.min(FUEL_CAPACITY - nbt.getInt("amount"), be.getFluid(0).getAmount());
nbt.putString("fuel", fluid);
be.getTankInventory().drain(toDrain, IFluidHandler.FluidAction.EXECUTE);
nbt.putInt("amount", nbt.getInt("amount") + toDrain);
nbt.putLong("amount", nbt.getLong("amount") + toDrain);
context.getPlayer().getCooldowns().addCooldown(stack.getItem(), 20);

View File

@@ -3,11 +3,11 @@ package com.drmangotea.createindustry.items.weapons.flamethrover;
import com.drmangotea.createindustry.CreateTFMGClient;
import com.simibubi.create.content.equipment.zapper.ShootGadgetPacket;
import com.simibubi.create.content.equipment.zapper.ShootableGadgetRenderHandler;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.phys.Vec3;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
public class FlamethrowerPacket extends ShootGadgetPacket {
@@ -31,13 +31,13 @@ public class FlamethrowerPacket extends ShootGadgetPacket {
@Override
@OnlyIn(Dist.CLIENT)
@Environment(EnvType.CLIENT)
protected void handleAdditional() {
}
@Override
@OnlyIn(Dist.CLIENT)
@Environment(EnvType.CLIENT)
protected ShootableGadgetRenderHandler getHandler() {
return CreateTFMGClient.FLAMETHROWER_RENDER_HANDLER;
}

View File

@@ -11,6 +11,7 @@ import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.SwordItem;
import net.minecraft.world.item.Tier;
import net.minecraft.world.item.enchantment.Enchantment;
import net.minecraft.world.item.enchantment.EnchantmentHelper;
import net.minecraft.world.level.Level;
import java.util.Map;
@@ -29,10 +30,10 @@ public class LithiumBladeItem extends SwordItem {
ItemStack stack = player.getItemInHand(hand);
ItemStack stack1 = new ItemStack(TFMGItems.LIT_LITHIUM_BLADE.get(), 1, stack.getOrCreateTag());
ItemStack stack1 = TFMGItems.LIT_LITHIUM_BLADE.asStack();
Map<Enchantment, Integer> enchantments = stack.getAllEnchantments();
Map<Enchantment, Integer> enchantments = EnchantmentHelper.getEnchantments(stack);
enchantments.forEach(stack1::enchant);

View File

@@ -6,6 +6,8 @@ import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.math.Matrix3f;
import com.mojang.math.Matrix4f;
import com.mojang.math.Vector3f;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.entity.EntityRenderer;
@@ -13,10 +15,8 @@ import net.minecraft.client.renderer.entity.EntityRendererProvider;
import net.minecraft.client.renderer.texture.OverlayTexture;
import net.minecraft.core.BlockPos;
import net.minecraft.resources.ResourceLocation;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
@OnlyIn(Dist.CLIENT)
@Environment(EnvType.CLIENT)
public class LithiumSparkRenderer extends EntityRenderer<LithiumSpark> {
private static final ResourceLocation TEXTURE_LOCATION = CreateTFMG.asResource("textures/entity/lithium_spark.png");
private static final RenderType RENDER_TYPE = RenderType.entityCutoutNoCull(TEXTURE_LOCATION);

View File

@@ -3,12 +3,12 @@ package com.drmangotea.createindustry.items.weapons.quad_potato_cannon;
import com.drmangotea.createindustry.CreateTFMGClient;
import com.simibubi.create.content.equipment.zapper.ShootGadgetPacket;
import com.simibubi.create.content.equipment.zapper.ShootableGadgetRenderHandler;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.phys.Vec3;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
public class QuadPotatoCannonPacket extends ShootGadgetPacket {
@@ -44,13 +44,13 @@ public class QuadPotatoCannonPacket extends ShootGadgetPacket {
}
@Override
@OnlyIn(Dist.CLIENT)
@Environment(EnvType.CLIENT)
protected void handleAdditional() {
CreateTFMGClient.QUAD_POTATO_CANNON_RENDER_HANDLER.beforeShoot(pitch, location, motion, item);
}
@Override
@OnlyIn(Dist.CLIENT)
@Environment(EnvType.CLIENT)
protected ShootableGadgetRenderHandler getHandler() {
return CreateTFMGClient.QUAD_POTATO_CANNON_RENDER_HANDLER;
}

View File

@@ -2,7 +2,6 @@ package com.drmangotea.createindustry.mixins;
import com.drmangotea.createindustry.base.TFMGPipes;
import com.drmangotea.createindustry.registry.TFMGBlocks;
import com.simibubi.create.AllBlocks;
import com.simibubi.create.AllTags;
import com.simibubi.create.content.fluids.FluidPropagator;
@@ -27,9 +26,6 @@ import net.minecraft.world.level.LevelAccessor;
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.state.properties.BlockStateProperties;
import net.minecraftforge.common.util.LazyOptional;
import net.minecraftforge.fluids.capability.CapabilityFluidHandler;
import net.minecraftforge.fluids.capability.IFluidHandler;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Overwrite;
import org.spongepowered.asm.mixin.Shadow;
@@ -123,23 +119,13 @@ public class FluidPropagatorMixin {
BlockPos connectedPos = pos.relative(side);
BlockState connectedState = reader.getBlockState(connectedPos);
FluidTransportBehaviour pipe = FluidPropagator.getPipe(reader, connectedPos);
if (pipe != null && pipe.canHaveFlowToward(connectedState, side.getOpposite()))
return false;
if (PumpBlock.isPump(connectedState) && connectedState.getValue(PumpBlock.FACING)
.getAxis() == side.getAxis())
return false;
if (VanillaFluidTargets.shouldPipesConnectTo(connectedState))
return true;
if (BlockHelper.hasBlockSolidSide(connectedState, reader, connectedPos, side.getOpposite())
&& !AllTags.AllBlockTags.FAN_TRANSPARENT.matches(connectedState))
return false;
if (hasFluidCapability(reader, connectedPos, side.getOpposite()))
return false;
if (!(connectedState.getMaterial()
.isReplaceable() && connectedState.getDestroySpeed(reader, connectedPos) != -1)
&& !connectedState.hasProperty(BlockStateProperties.WATERLOGGED))
return false;
return true;
return (pipe == null || !pipe.canHaveFlowToward(connectedState, side.getOpposite()))
&& (!PumpBlock.isPump(connectedState) || connectedState.getValue(PumpBlock.FACING).getAxis() != side.getAxis())
&& !VanillaFluidTargets.shouldPipesConnectTo(connectedState)
&& (!BlockHelper.hasBlockSolidSide(connectedState, reader, connectedPos, side.getOpposite())
|| AllTags.AllBlockTags.FAN_TRANSPARENT.matches(connectedState))
&& (connectedState.getMaterial().isReplaceable() && connectedState.getDestroySpeed(reader, connectedPos) != -1
|| connectedState.hasProperty(BlockStateProperties.WATERLOGGED));
}
@Shadow
public static List<Direction> getPipeConnections(BlockState state, FluidTransportBehaviour pipe) {
@@ -153,15 +139,7 @@ public class FluidPropagatorMixin {
public static int getPumpRange() {
return AllConfigs.server().fluids.mechanicalPumpRange.get();
}
@Shadow
public static boolean hasFluidCapability(BlockGetter world, BlockPos pos, Direction side) {
BlockEntity tileEntity = world.getBlockEntity(pos);
if (tileEntity == null)
return false;
LazyOptional<IFluidHandler> capability =
tileEntity.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY, side);
return capability.isPresent();
}
@Shadow
@Nullable
public static Direction.Axis getStraightPipeAxis(BlockState state) {

View File

@@ -1,127 +0,0 @@
package com.drmangotea.createindustry.mixins;
import java.util.ArrayList;
import java.util.List;
import com.drmangotea.createindustry.base.TFMGPipeModelData;
import com.simibubi.create.content.fluids.FluidTransportBehaviour;
import com.simibubi.create.content.fluids.PipeAttachmentModel;
import org.jetbrains.annotations.NotNull;
import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.decoration.bracket.BracketedBlockEntityBehaviour;
import com.simibubi.create.content.fluids.FluidTransportBehaviour.AttachmentTypes;
import com.simibubi.create.content.fluids.FluidTransportBehaviour.AttachmentTypes.ComponentPartials;
import com.simibubi.create.content.fluids.pipes.FluidPipeBlock;
import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour;
import com.simibubi.create.foundation.model.BakedModelWrapperWithData;
import com.simibubi.create.foundation.utility.Iterate;
import net.minecraft.client.renderer.ItemBlockRenderTypes;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.block.model.BakedQuad;
import net.minecraft.client.resources.model.BakedModel;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.util.RandomSource;
import net.minecraft.world.level.BlockAndTintGetter;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraftforge.client.ChunkRenderTypeSet;
import net.minecraftforge.client.model.data.ModelData;
import net.minecraftforge.client.model.data.ModelData.Builder;
import net.minecraftforge.client.model.data.ModelProperty;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Overwrite;
import static net.minecraft.world.level.block.PipeBlock.PROPERTY_BY_DIRECTION;
@Mixin(PipeAttachmentModel.class)
public class PipeAttachmentModelMixin extends BakedModelWrapperWithData {
private static final ModelProperty<TFMGPipeModelData> PIPE_PROPERTY = new ModelProperty<>();
public PipeAttachmentModelMixin(BakedModel template) {
super(template);
}
/**
* @author DrMangoTea
* @reason locked pipes
*/
@Overwrite( remap = false)
protected ModelData.Builder gatherModelData(ModelData.Builder builder, BlockAndTintGetter world, BlockPos pos, BlockState state,
ModelData blockEntityData) {
TFMGPipeModelData data = new TFMGPipeModelData();
FluidTransportBehaviour transport = BlockEntityBehaviour.get(world, pos, FluidTransportBehaviour.TYPE);
BracketedBlockEntityBehaviour bracket = BlockEntityBehaviour.get(world, pos, BracketedBlockEntityBehaviour.TYPE);
if (transport != null)
for (Direction d : Iterate.directions) {
boolean shouldConnect = true;
if(world.getBlockState(pos.relative(d)).getBlock() instanceof FluidPipeBlock) {
if(d.getAxis().isHorizontal())
shouldConnect = world.getBlockState(pos.relative(d)).getValue(PROPERTY_BY_DIRECTION.get(d.getOpposite()));
}
data.putAttachment(d, transport.getRenderedRimAttachment(world, pos, state, d));
if(!shouldConnect)
if(state.getBlock() instanceof FluidPipeBlock)
if(state.getValue(PROPERTY_BY_DIRECTION.get(d)))
data.putAttachment(d, FluidTransportBehaviour.AttachmentTypes.RIM);
}
if (bracket != null)
data.putBracket(bracket.getBracket());
data.setEncased(FluidPipeBlock.shouldDrawCasing(world, pos, state));
return builder.with(PIPE_PROPERTY, data);
}
@SuppressWarnings("removal")
@Override
public ChunkRenderTypeSet getRenderTypes(@NotNull BlockState state, @NotNull RandomSource rand, @NotNull ModelData data) {
ChunkRenderTypeSet set = super.getRenderTypes(state, rand, data);
if (set.isEmpty()) {
return ItemBlockRenderTypes.getRenderLayers(state);
}
return set;
}
@Override
public List<BakedQuad> getQuads(BlockState state, Direction side, RandomSource rand, ModelData data, RenderType renderType) {
List<BakedQuad> quads = super.getQuads(state, side, rand, data, renderType);
if (data.has(PIPE_PROPERTY)) {
TFMGPipeModelData pipeData = data.get(PIPE_PROPERTY);
quads = new ArrayList<>(quads);
addQuads(quads, state, side, rand, data, pipeData, renderType);
}
return quads;
}
private void addQuads(List<BakedQuad> quads, BlockState state, Direction side, RandomSource rand, ModelData data,
TFMGPipeModelData pipeData, RenderType renderType) {
BakedModel bracket = pipeData.getBracket();
if (bracket != null)
quads.addAll(bracket.getQuads(state, side, rand, data, renderType));
for (Direction d : Iterate.directions) {
AttachmentTypes type = pipeData.getAttachment(d);
for (ComponentPartials partial : type.partials) {
quads.addAll(AllPartialModels.PIPE_ATTACHMENTS.get(partial)
.get(d)
.get()
.getQuads(state, side, rand, data, renderType));
}
}
if (pipeData.isEncased())
quads.addAll(AllPartialModels.FLUID_PIPE_CASING.get()
.getQuads(state, side, rand, data, renderType));
}
}

View File

@@ -6,6 +6,7 @@ import com.simibubi.create.content.processing.recipe.ProcessingRecipeBuilder.Pro
import com.simibubi.create.foundation.fluid.CombinedTankWrapper;
import com.simibubi.create.foundation.fluid.FluidIngredient;
import io.github.fabricators_of_create.porting_lib.transfer.item.RecipeWrapper;
import io.github.fabricators_of_create.porting_lib.util.FluidStack;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.Level;
@@ -31,10 +32,10 @@ public class CastingRecipe extends ProcessingRecipe<RecipeWrapper> {
}
public boolean matches(CombinedTankWrapper inv, Level worldIn) {
if (inv.getFluidInTank(0).getAmount()==0)
if (inv.parts.get(0).iterator().next().getAmount() ==0)
return false;
return fluidIngredients.get(0)
.test(inv.getFluidInTank(0));
.test(new FluidStack(inv.parts.get(0).iterator().next().getResource(), inv.parts.get(0).iterator().next().getAmount()));
}
public FluidIngredient getInputFluid(){
return getFluidIngredients().get(0);

View File

@@ -9,7 +9,7 @@ import com.mojang.blaze3d.vertex.PoseStack;
import com.simibubi.create.compat.jei.category.CreateRecipeCategory;
import com.simibubi.create.foundation.fluid.FluidIngredient;
import com.simibubi.create.foundation.gui.AllGuiTextures;
import mezz.jei.api.forge.ForgeTypes;
import mezz.jei.api.fabric.constants.FabricTypes;
import mezz.jei.api.gui.builder.IRecipeLayoutBuilder;
import mezz.jei.api.gui.ingredient.IRecipeSlotsView;
import mezz.jei.api.recipe.IFocusGroup;
@@ -41,7 +41,7 @@ public class AdvancedDistillationCategory extends CreateRecipeCategory<Distillat
builder
.addSlot(RecipeIngredientRole.INPUT, 18, 130-yModifier)
.setBackground(getRenderedSlot(), -1, -1)
.addIngredients(ForgeTypes.FLUID_STACK, withImprovedVisibility(recipe.getInputFluid().getMatchingFluidStacks()))
.addIngredients(FabricTypes.FLUID_STACK, withImprovedVisibility(recipe.getInputFluid().getMatchingFluidStacks()))
.addTooltipCallback(addFluidTooltip(recipe.getInputFluid().getRequiredAmount()));
@@ -50,7 +50,7 @@ public class AdvancedDistillationCategory extends CreateRecipeCategory<Distillat
builder
.addSlot(RecipeIngredientRole.OUTPUT, 105, y)
.setBackground(getRenderedSlot(), -1, -1)
.addIngredient(ForgeTypes.FLUID_STACK, withImprovedVisibility(recipe.getFluidResults().get(i)))
.addIngredient(FabricTypes.FLUID_STACK, withImprovedVisibility(recipe.getFluidResults().get(i)))
.addTooltipCallback(addFluidTooltip(recipe.getFirstFluidResult().getAmount()));
}

View File

@@ -8,6 +8,7 @@ import com.drmangotea.createindustry.registry.TFMGItems;
import com.mojang.blaze3d.vertex.PoseStack;
import com.simibubi.create.compat.jei.category.CreateRecipeCategory;
import com.simibubi.create.foundation.gui.AllGuiTextures;
import mezz.jei.api.fabric.constants.FabricTypes;
import mezz.jei.api.gui.builder.IRecipeLayoutBuilder;
import mezz.jei.api.gui.ingredient.IRecipeSlotsView;
import mezz.jei.api.recipe.IFocusGroup;
@@ -47,19 +48,19 @@ public class IndustrialBlastingCategory extends CreateRecipeCategory<IndustrialB
builder
.addSlot(RecipeIngredientRole.OUTPUT,140, 117)
.setBackground(getRenderedSlot(), -1, -1)
.addIngredient(ForgeTypes.FLUID_STACK, withImprovedVisibility(recipe.getFluidResults().get(0)))
.addIngredient(FabricTypes.FLUID_STACK, withImprovedVisibility(recipe.getFluidResults().get(0)))
.addTooltipCallback(addFluidTooltip(recipe.getFluidResults().get(0).getAmount()));
builder
.addSlot(RecipeIngredientRole.OUTPUT,160, 117)
.setBackground(getRenderedSlot(), -1, -1)
.addIngredient(ForgeTypes.FLUID_STACK, withImprovedVisibility(recipe.getFluidResults().get(1)))
.addIngredient(FabricTypes.FLUID_STACK, withImprovedVisibility(recipe.getFluidResults().get(1)))
.addTooltipCallback(addFluidTooltip(recipe.getFluidResults().get(1).getAmount()));
}
@Override
public void draw(IndustrialBlastingRecipe recipe, IRecipeSlotsView recipeSlotsView, net.minecraft.class_4587 stack, double mouseX, double mouseY) {
public void draw(IndustrialBlastingRecipe recipe, IRecipeSlotsView recipeSlotsView, PoseStack stack, double mouseX, double mouseY) {
blastFurnace
.draw(stack, 50, 135);

View File

@@ -2,24 +2,10 @@ package com.drmangotea.createindustry.recipes.jei.machines;
import com.drmangotea.createindustry.registry.TFMGBlocks;
import com.jozufozu.flywheel.core.PartialModel;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.math.Vector3f;
import com.simibubi.create.AllBlocks;
import com.simibubi.create.AllPartialModels;
import com.simibubi.create.AllSpriteShifts;
import com.simibubi.create.compat.jei.category.animations.AnimatedKinetics;
import com.simibubi.create.content.processing.burner.BlazeBurnerBlock;
import com.simibubi.create.foundation.block.render.SpriteShiftEntry;
import com.simibubi.create.foundation.render.CachedBufferer;
import com.simibubi.create.foundation.utility.AnimationTickHolder;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.LightTexture;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.util.Mth;
import net.minecraft.world.level.block.Blocks;
public class CokeOven extends AnimatedKinetics {

View File

@@ -83,8 +83,6 @@ import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.ham
import com.drmangotea.createindustry.items.weapons.explosives.napalm.NapalmBombBlock;
import com.drmangotea.createindustry.blocks.machines.metal_processing.casting_basin.CastingBasinBlock;
import com.drmangotea.createindustry.blocks.machines.metal_processing.casting_spout.CastingSpoutBlock;
import com.drmangotea.createindustry.items.CoalCokeBlockItem;
import com.drmangotea.createindustry.items.FossilstoneItem;
import com.drmangotea.createindustry.blocks.deposits.surface_scanner.SurfaceScannerBlock;
import com.drmangotea.createindustry.blocks.machines.metal_processing.blast_furnace.BlastFurnaceOutputBlock;
import com.drmangotea.createindustry.blocks.machines.metal_processing.blast_furnace.MoltenMetalBlock;
@@ -272,7 +270,7 @@ public class TFMGBlocks {
.blockstate(simpleCubeAll("coal_coke_block"))
.tag(BlockTags.NEEDS_STONE_TOOL)
.tag(Tags.Blocks.STORAGE_BLOCKS)
.item(CoalCokeBlockItem::new)
.item()
.tag(Tags.Items.STORAGE_BLOCKS)
.build()
.lang("Block of Coal Coke")
@@ -325,8 +323,7 @@ public class TFMGBlocks {
.properties(p -> p.requiresCorrectToolForDrops())
.transform(pickaxeOnly())
.blockstate(simpleCubeAll("fossilstone"))
.item(FossilstoneItem::new)
.build()
.simpleItem()
.lang("Fossilstone")
.register();

View File

@@ -8,5 +8,7 @@ public class TFMGFuels {
public void register() {
registry.add(TFMGItems.COAL_COKE.get(), 3200);
registry.add(TFMGItems.COAL_COKE.get(), 3200);
registry.add(TFMGBlocks.COAL_COKE_BLOCK.get().asItem(), 28800);
registry.add(TFMGBlocks.FOSSILSTONE.get().asItem(), 4000);
}
}

View File

@@ -1,3 +1,4 @@
accessWidener v1 named
accessible method net/minecraft/tags/FluidTags create (Ljava/lang/String;)Lnet/minecraft/tags/TagKey;
accessible method net/minecraft/world/damagesource/DamageSource <init> (Ljava/lang/String;)V