1.17: TechReborn compiles and runs, big thanks to @petabyteboy
Co-authored-by: Milan Pässler <milan@petabyte.dev>
This commit is contained in:
parent
c661de5254
commit
b33f4be5f4
212 changed files with 952 additions and 2025 deletions
|
@ -28,7 +28,7 @@ import net.fabricmc.fabric.api.loot.v1.FabricLootPoolBuilder;
|
|||
import net.fabricmc.fabric.api.loot.v1.event.LootTableLoadingCallback;
|
||||
import net.minecraft.item.ItemConvertible;
|
||||
import net.minecraft.loot.LootPool;
|
||||
import net.minecraft.loot.UniformLootTableRange;
|
||||
import net.minecraft.loot.provider.number.UniformLootNumberProvider;
|
||||
import net.minecraft.loot.entry.ItemEntry;
|
||||
import net.minecraft.loot.entry.LootPoolEntry;
|
||||
import net.minecraft.loot.function.SetCountLootFunction;
|
||||
|
@ -73,17 +73,17 @@ public class ModLoot {
|
|||
|
||||
LootPool poolBasic = FabricLootPoolBuilder.builder().withEntry(copperIngot).withEntry(tinIngot)
|
||||
.withEntry(leadIngot).withEntry(silverIngot).withEntry(refinedronIngot).withEntry(advancedalloyIngot)
|
||||
.withEntry(basicFrame).withEntry(basicCircuit).withEntry(rubberSapling).rolls(UniformLootTableRange.between(1.0f, 2.0f))
|
||||
.withEntry(basicFrame).withEntry(basicCircuit).withEntry(rubberSapling).rolls(UniformLootNumberProvider.create(1.0f, 2.0f))
|
||||
.build();
|
||||
|
||||
LootPool poolAdvanced = FabricLootPoolBuilder.builder().withEntry(aluminumIngot).withEntry(electrumIngot)
|
||||
.withEntry(invarIngot).withEntry(nickelIngot).withEntry(steelIngot).withEntry(zincIngot)
|
||||
.withEntry(advancedFrame).withEntry(advancedCircuit).withEntry(dataStorageChip).rolls(UniformLootTableRange.between(1.0f, 3.0f))
|
||||
.withEntry(advancedFrame).withEntry(advancedCircuit).withEntry(dataStorageChip).rolls(UniformLootNumberProvider.create(1.0f, 3.0f))
|
||||
.build();
|
||||
|
||||
LootPool poolIndustrial = FabricLootPoolBuilder.builder().withEntry(chromeIngot).withEntry(iridiumIngot)
|
||||
.withEntry(platinumIngot).withEntry(titaniumIngot).withEntry(tungstenIngot).withEntry(tungstensteelIngot)
|
||||
.withEntry(industrialFrame).withEntry(industrialCircuit).withEntry(energyFlowChip).rolls(UniformLootTableRange.between(1.0f, 3.0f))
|
||||
.withEntry(industrialFrame).withEntry(industrialCircuit).withEntry(energyFlowChip).rolls(UniformLootNumberProvider.create(1.0f, 3.0f))
|
||||
.build();
|
||||
|
||||
LootTableLoadingCallback.EVENT.register((resourceManager, lootManager, ident, supplier, setter) -> {
|
||||
|
@ -149,7 +149,7 @@ public class ModLoot {
|
|||
*/
|
||||
private static LootPoolEntry makeEntry(ItemConvertible item, int weight) {
|
||||
return ItemEntry.builder(item).weight(weight)
|
||||
.apply(SetCountLootFunction.builder(UniformLootTableRange.between(1.0f, 2.0f))).build();
|
||||
.apply(SetCountLootFunction.builder(UniformLootNumberProvider.create(1.0f, 2.0f))).build();
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -24,11 +24,14 @@
|
|||
|
||||
package techreborn.init;
|
||||
|
||||
import net.fabricmc.fabric.api.object.builder.v1.block.entity.FabricBlockEntityTypeBuilder;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.block.entity.BlockEntity;
|
||||
import net.minecraft.block.entity.BlockEntityType;
|
||||
import net.minecraft.item.ItemConvertible;
|
||||
import net.minecraft.util.Identifier;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.registry.Registry;
|
||||
import org.apache.commons.lang3.Validate;
|
||||
import techreborn.TechReborn;
|
||||
|
@ -69,6 +72,7 @@ import techreborn.blockentity.transformers.MVTransformerBlockEntity;
|
|||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.function.BiFunction;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
public class TRBlockEntities {
|
||||
|
@ -136,16 +140,16 @@ public class TRBlockEntities {
|
|||
public static final BlockEntityType<WireMillBlockEntity> WIRE_MILL = register(WireMillBlockEntity::new, "wire_mill", TRContent.Machine.WIRE_MILL);
|
||||
public static final BlockEntityType<GreenhouseControllerBlockEntity> GREENHOUSE_CONTROLLER = register(GreenhouseControllerBlockEntity::new, "greenhouse_controller", TRContent.Machine.GREENHOUSE_CONTROLLER);
|
||||
|
||||
public static <T extends BlockEntity> BlockEntityType<T> register(Supplier<T> supplier, String name, ItemConvertible... items) {
|
||||
public static <T extends BlockEntity> BlockEntityType<T> register(BiFunction<BlockPos, BlockState, T> supplier, String name, ItemConvertible... items) {
|
||||
return register(supplier, name, Arrays.stream(items).map(itemConvertible -> Block.getBlockFromItem(itemConvertible.asItem())).toArray(Block[]::new));
|
||||
}
|
||||
|
||||
public static <T extends BlockEntity> BlockEntityType<T> register(Supplier<T> supplier, String name, Block... blocks) {
|
||||
public static <T extends BlockEntity> BlockEntityType<T> register(BiFunction<BlockPos, BlockState, T> supplier, String name, Block... blocks) {
|
||||
Validate.isTrue(blocks.length > 0, "no blocks for blockEntity entity type!");
|
||||
return register(new Identifier(TechReborn.MOD_ID, name).toString(), BlockEntityType.Builder.create(supplier, blocks));
|
||||
return register(new Identifier(TechReborn.MOD_ID, name).toString(), FabricBlockEntityTypeBuilder.create((pos, state) -> supplier.apply(pos, state), blocks));
|
||||
}
|
||||
|
||||
public static <T extends BlockEntity> BlockEntityType<T> register(String id, BlockEntityType.Builder<T> builder) {
|
||||
public static <T extends BlockEntity> BlockEntityType<T> register(String id, FabricBlockEntityTypeBuilder<T> builder) {
|
||||
BlockEntityType<T> blockEntityType = builder.build(null);
|
||||
Registry.register(Registry.BLOCK_ENTITY_TYPE, new Identifier(id), blockEntityType);
|
||||
TRBlockEntities.TYPES.add(blockEntityType);
|
||||
|
|
|
@ -40,6 +40,8 @@ import net.minecraft.util.math.Direction;
|
|||
import net.minecraft.util.math.Position;
|
||||
import net.minecraft.world.WorldAccess;
|
||||
import reborncore.common.crafting.RebornRecipe;
|
||||
import reborncore.common.fluid.container.ItemFluidInfo;
|
||||
import techreborn.TechReborn;
|
||||
import techreborn.config.TechRebornConfig;
|
||||
import techreborn.items.DynamicCellItem;
|
||||
|
||||
|
@ -78,7 +80,13 @@ public class TRDispenserBehavior {
|
|||
if (cell.getFluid(stack) == Fluids.EMPTY) {
|
||||
// fill cell
|
||||
if (block instanceof FluidDrainable) {
|
||||
Fluid fluid = ((FluidDrainable) block).tryDrainFluid(iWorld, blockPos, blockState);
|
||||
ItemStack fluidContainer = ((FluidDrainable) block).tryDrainFluid(iWorld, blockPos, blockState);
|
||||
Fluid fluid = null;
|
||||
if (fluidContainer.getItem() instanceof ItemFluidInfo) {
|
||||
fluid = ((ItemFluidInfo) fluidContainer.getItem()).getFluid(fluidContainer);
|
||||
} else {
|
||||
TechReborn.LOGGER.debug("Could not get Fluid from ItemStack " + fluidContainer.getItem());
|
||||
}
|
||||
if (!(fluid instanceof FlowableFluid)) {
|
||||
return super.dispenseSilently(pointer, stack);
|
||||
} else {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue