some bug fixes

This commit is contained in:
DrMangoTea
2025-07-03 01:19:47 +02:00
parent aec8b07bf6
commit f708ad57a0
17 changed files with 267 additions and 122 deletions

View File

@@ -23,16 +23,19 @@ We wanna be the first ones to try and prove this concept.
## Features ## Features
* Concrete (Rebar Concrete Too)
* Steel
* Large Distilleries * Large Distilleries
* Blast Furnaces * Realistic Electricity
* Coke Ovens * Steel Mills
* OIL!!! * Concrete
* Quad Potato Cannon (Fwoomp) * Electrolyzers
* Bauxite(For Obtaining Aluminum or for Building) * Steel
* Aluminum * Aluminum
* Cast Iron
* Lead
* Sulfur * Sulfur
* OIL!!!
* Quad Potato Cannon
* Flamethrowers
* And more.. * And more..
<br> <br>

View File

@@ -1,4 +1,4 @@
// 1.20.1 2025-06-28T21:43:05.723232 Registrate Provider for tfmg [Recipes, Advancements, Loot Tables, Tags (blocks), Tags (items), Tags (fluids), Tags (entity_types), Blockstates, Item models, Lang (en_us/en_ud)] // 1.20.1 2025-07-02T22:26:39.170519 Registrate Provider for tfmg [Recipes, Advancements, Loot Tables, Tags (blocks), Tags (items), Tags (fluids), Tags (entity_types), Blockstates, Item models, Lang (en_us/en_ud)]
ff5a5721633b83465ab501cbdfdc579a0f20e938 assets/tfmg/blockstates/accumulator.json ff5a5721633b83465ab501cbdfdc579a0f20e938 assets/tfmg/blockstates/accumulator.json
e982a263b6af75821042107fdeff7bd809436d08 assets/tfmg/blockstates/air_intake.json e982a263b6af75821042107fdeff7bd809436d08 assets/tfmg/blockstates/air_intake.json
e7f63aadfc892e337d9f87b5e50af8b1c7e4103f assets/tfmg/blockstates/aluminum_bars.json e7f63aadfc892e337d9f87b5e50af8b1c7e4103f assets/tfmg/blockstates/aluminum_bars.json
@@ -436,8 +436,8 @@ a1988ec6a98f23cad8321b46345fbf1c5fd20489 assets/tfmg/blockstates/yellow_rebar_co
c58fa20c091e5ecddfb7164cba45538a8f911431 assets/tfmg/blockstates/yellow_rebar_concrete_wall.json c58fa20c091e5ecddfb7164cba45538a8f911431 assets/tfmg/blockstates/yellow_rebar_concrete_wall.json
0271e2b940bb94cdb7e951b81e277ee633d64d62 assets/tfmg/blockstates/zinc_frame.json 0271e2b940bb94cdb7e951b81e277ee633d64d62 assets/tfmg/blockstates/zinc_frame.json
1bd66f29acffb67f30bfe94c8535509bd009beab assets/tfmg/blockstates/zinc_truss.json 1bd66f29acffb67f30bfe94c8535509bd009beab assets/tfmg/blockstates/zinc_truss.json
440e139bada2f3a312080ea81c808a06c0a0db92 assets/tfmg/lang/en_ud.json d4597424a0c22ce7a0fc9f6fdc5a257fa20b2533 assets/tfmg/lang/en_ud.json
8b2c8944edbfcc8e41417fd12a7a0a79bfef737d assets/tfmg/lang/en_us.json e11bfa4e2988dd2ef1ae41c306c8989601bbcaf8 assets/tfmg/lang/en_us.json
9e6a6b62f5e7528c4e4d4f72f3510edcd8f0c078 assets/tfmg/models/block/aluminum_block.json 9e6a6b62f5e7528c4e4d4f72f3510edcd8f0c078 assets/tfmg/models/block/aluminum_block.json
1d33a893d6ac05f9adaceb7f84423ebe9b195c01 assets/tfmg/models/block/aluminum_cable_hub.json 1d33a893d6ac05f9adaceb7f84423ebe9b195c01 assets/tfmg/models/block/aluminum_cable_hub.json
da469bf3233944085f07d4ef437827061e408838 assets/tfmg/models/block/aluminum_cap.json da469bf3233944085f07d4ef437827061e408838 assets/tfmg/models/block/aluminum_cap.json

View File

@@ -475,8 +475,8 @@
"create.goggles.blast_furnace.stats": ":ǝɔɐuɹnℲ ʇsɐןᗺ", "create.goggles.blast_furnace.stats": ":ǝɔɐuɹnℲ ʇsɐןᗺ",
"create.goggles.blast_furnace.timer": "%1$s :ʇɟǝꞀ ǝɯı⟘", "create.goggles.blast_furnace.timer": "%1$s :ʇɟǝꞀ ǝɯı⟘",
"create.goggles.blast_stove.header": " :ǝʌoʇS ʇsɐןᗺ", "create.goggles.blast_stove.header": " :ǝʌoʇS ʇsɐןᗺ",
"create.goggles.blast_stove.tank1": " :Ɩ ʞuɐ⟘ ʇnduI", "create.goggles.blast_stove.tank1": " :ʞuɐ⟘ ʇnduI",
"create.goggles.blast_stove.tank2": " :ʞuɐ⟘ ʇnduI", "create.goggles.blast_stove.tank2": " :ʞuɐ⟘ ןǝnℲ",
"create.goggles.blast_stove.tank3": " :Ɩ ʞuɐ⟘ ʇndʇnO", "create.goggles.blast_stove.tank3": " :Ɩ ʞuɐ⟘ ʇndʇnO",
"create.goggles.blast_stove.tank4": " :ᄅ ʞuɐ⟘ ʇndʇnO", "create.goggles.blast_stove.tank4": " :ᄅ ʞuɐ⟘ ʇndʇnO",
"create.goggles.coke_oven.header": ":uǝʌO ǝʞoƆ", "create.goggles.coke_oven.header": ":uǝʌO ǝʞoƆ",
@@ -521,10 +521,10 @@
"create.goggles.pumpjack.wrong_rotation2": "ɹǝpןoH ɹǝɯɯɐH ʞɔɐظdɯnԀ ǝɥʇ ɯoɹɟ ʎɐʍɐ ǝɔɐɟ", "create.goggles.pumpjack.wrong_rotation2": "ɹǝpןoH ɹǝɯɯɐH ʞɔɐظdɯnԀ ǝɥʇ ɯoɹɟ ʎɐʍɐ ǝɔɐɟ",
"create.goggles.pumpjack_fluid_storage": ":oɟuI ʞuɐ⟘ pınןℲ", "create.goggles.pumpjack_fluid_storage": ":oɟuI ʞuɐ⟘ pınןℲ",
"create.goggles.pumpjack_info": ":oɟuI ʞɔɐظdɯnԀ", "create.goggles.pumpjack_info": ":oɟuI ʞɔɐظdɯnԀ",
"create.goggles.surface_scanner.deposit_found": "¡pǝʇɐɔoꞀ ʇısodǝᗡ", "create.goggles.surface_scanner.deposits_found": "punoℲ sʇısodǝᗡ ןıO ɥʇıM sʞunɥƆ ",
"create.goggles.surface_scanner.distance": "sʞɔoןᗺ %1$s :ǝɔuɐʇsı", "create.goggles.surface_scanner.header": "ɹǝuuɐɔS ǝɔɐɟɹnS",
"create.goggles.surface_scanner.no_deposit": "punoℲ ʇısodǝᗡ oN", "create.goggles.surface_scanner.no_deposit": "punoℲ sʇısodǝᗡ oN",
"create.goggles.surface_scanner.scanning_surface": "ǝɔɐɟɹnS ǝɥ⟘ buıuuɐɔS", "create.goggles.surface_scanner.no_rotation": ")ɯdɹㄣ9 spǝǝN( uoıʇɐʇoᴚ ɥbnouƎ ʇoN",
"create.goggles.vat.attachments": ":sʇuǝɯɥɔɐʇʇⱯ", "create.goggles.vat.attachments": ":sʇuǝɯɥɔɐʇʇⱯ",
"create.goggles.vat.contents": ":sʇuǝʇuoƆ ʇɐΛ", "create.goggles.vat.contents": ":sʇuǝʇuoƆ ʇɐΛ",
"create.goggles.vat.header": "ʇɐΛ ןɐɔıɯǝɥƆ", "create.goggles.vat.header": "ʇɐΛ ןɐɔıɯǝɥƆ",

View File

@@ -475,8 +475,8 @@
"create.goggles.blast_furnace.stats": "Blast Furnace:", "create.goggles.blast_furnace.stats": "Blast Furnace:",
"create.goggles.blast_furnace.timer": "Time Left: %1$s", "create.goggles.blast_furnace.timer": "Time Left: %1$s",
"create.goggles.blast_stove.header": "Blast Stove: ", "create.goggles.blast_stove.header": "Blast Stove: ",
"create.goggles.blast_stove.tank1": "Input Tank 1: ", "create.goggles.blast_stove.tank1": "Input Tank: ",
"create.goggles.blast_stove.tank2": "Input Tank 2: ", "create.goggles.blast_stove.tank2": "Fuel Tank: ",
"create.goggles.blast_stove.tank3": "Output Tank 1: ", "create.goggles.blast_stove.tank3": "Output Tank 1: ",
"create.goggles.blast_stove.tank4": "Output Tank 2: ", "create.goggles.blast_stove.tank4": "Output Tank 2: ",
"create.goggles.coke_oven.header": "Coke Oven:", "create.goggles.coke_oven.header": "Coke Oven:",
@@ -521,10 +521,10 @@
"create.goggles.pumpjack.wrong_rotation2": "face away from the Pumpjack Hammer Holder", "create.goggles.pumpjack.wrong_rotation2": "face away from the Pumpjack Hammer Holder",
"create.goggles.pumpjack_fluid_storage": "Fluid Tank Info:", "create.goggles.pumpjack_fluid_storage": "Fluid Tank Info:",
"create.goggles.pumpjack_info": "Pumpjack Info:", "create.goggles.pumpjack_info": "Pumpjack Info:",
"create.goggles.surface_scanner.deposit_found": "Deposit Located!", "create.goggles.surface_scanner.deposits_found": " Chunks With Oil Deposits Found",
"create.goggles.surface_scanner.distance": "Distance: %1$s Blocks", "create.goggles.surface_scanner.header": "Surface Scanner",
"create.goggles.surface_scanner.no_deposit": "No Deposit Found", "create.goggles.surface_scanner.no_deposit": "No Deposits Found",
"create.goggles.surface_scanner.scanning_surface": "Scanning The Surface", "create.goggles.surface_scanner.no_rotation": "Not Enough Rotation (Needs 64rpm)",
"create.goggles.vat.attachments": "Attachments:", "create.goggles.vat.attachments": "Attachments:",
"create.goggles.vat.contents": "Vat Contents:", "create.goggles.vat.contents": "Vat Contents:",
"create.goggles.vat.header": "Chemical Vat", "create.goggles.vat.header": "Chemical Vat",

View File

@@ -31,7 +31,7 @@ public class PolarizerBlock extends TFMGHorizontalDirectionalBlock implements IB
if(level.getBlockEntity(pos) instanceof PolarizerBlockEntity be){ if(level.getBlockEntity(pos) instanceof PolarizerBlockEntity be){
if(player.getItemInHand(hand).isEmpty()){ if(player.getItemInHand(hand).isEmpty()){
if(!be.inventory.isEmpty()) { if(!be.inventory.isEmpty()) {
player.setItemInHand(hand, new ItemStack(be.inventory.getStackInSlot(0).getItem(),1)); player.setItemInHand(hand, be.inventory.getStackInSlot(0));
be.inventory.setItem(0, ItemStack.EMPTY); be.inventory.setItem(0, ItemStack.EMPTY);
return InteractionResult.SUCCESS; return InteractionResult.SUCCESS;
} }

View File

@@ -94,6 +94,9 @@ public class LargeEngineBlockEntity extends AbstractEngineBlockEntity {
PoweredShaftBlockEntity shaft = getShaft(); PoweredShaftBlockEntity shaft = getShaft();
if (shaft == null) { if (shaft == null) {
if (!level.isClientSide()) { if (!level.isClientSide()) {
@@ -207,9 +210,14 @@ public class LargeEngineBlockEntity extends AbstractEngineBlockEntity {
return; return;
} }
boolean isFuelValid = false;
for(TagKey<Fluid> tag : getSupportedFuels()){
if(fuelTank.getFluid().getFluid().is(tag))
isFuelValid = true;
}
shaft.update(worldPosition, 2, 15 * getFuelType().getStress()); shaft.update(worldPosition, 2, 15 * getFuelType().getStress()*(isFuelValid?1:0));
sendData(); sendData();
setChanged(); setChanged();
} }

View File

@@ -30,6 +30,7 @@ import net.minecraft.world.item.crafting.Recipe;
import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.material.Fluids;
import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.AABB;
import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.common.capabilities.ForgeCapabilities; import net.minecraftforge.common.capabilities.ForgeCapabilities;
@@ -365,8 +366,9 @@ public class BlastStoveBlockEntity extends FluidTankBlockEntity implements IHave
.forGoggles(tooltip); .forGoggles(tooltip);
CreateLang.builder() CreateLang.builder()
.add(CreateLang.translate("goggles.blast_stove.tank1")) .add(CreateLang.translate("goggles.blast_stove.tank1"))
.add(CreateLang.number(secondaryCapability.orElseGet(null).getFluidInTank(0).getAmount()) .add(CreateLang.number(getControllerBE().secondaryCapability.orElseGet(null).getFluidInTank(0).getAmount())
.add(mb) .add(mb)
.add(getControllerBE().secondaryCapability.orElseGet(null).getFluidInTank(0).getFluid() == Fluids.EMPTY ? CreateLang.text("") : CreateLang.text(" "+getControllerBE().secondaryCapability.orElseGet(null).getFluidInTank(0).getDisplayName().getString()))
.style(ChatFormatting.DARK_GREEN)) .style(ChatFormatting.DARK_GREEN))
.text(ChatFormatting.GRAY, " / ") .text(ChatFormatting.GRAY, " / ")
.add(CreateLang.number(8000) .add(CreateLang.number(8000)
@@ -375,8 +377,9 @@ public class BlastStoveBlockEntity extends FluidTankBlockEntity implements IHave
.forGoggles(tooltip, 1); .forGoggles(tooltip, 1);
CreateLang.builder() CreateLang.builder()
.add(CreateLang.translate("goggles.blast_stove.tank2")) .add(CreateLang.translate("goggles.blast_stove.tank2"))
.add(CreateLang.number(primaryCapability.orElseGet(null).getFluidInTank(1).getAmount()) .add(CreateLang.number(getControllerBE().primaryCapability.orElseGet(null).getFluidInTank(1).getAmount())
.add(mb) .add(mb)
.add(getControllerBE().primaryCapability.orElseGet(null).getFluidInTank(1).getFluid() == Fluids.EMPTY ? CreateLang.text("") : CreateLang.text(" "+getControllerBE().primaryCapability.orElseGet(null).getFluidInTank(1).getDisplayName().getString()))
.style(ChatFormatting.DARK_GREEN)) .style(ChatFormatting.DARK_GREEN))
.text(ChatFormatting.GRAY, " / ") .text(ChatFormatting.GRAY, " / ")
.add(CreateLang.number(8000) .add(CreateLang.number(8000)
@@ -385,8 +388,9 @@ public class BlastStoveBlockEntity extends FluidTankBlockEntity implements IHave
.forGoggles(tooltip, 1); .forGoggles(tooltip, 1);
CreateLang.builder() CreateLang.builder()
.add(CreateLang.translate("goggles.blast_stove.tank3")) .add(CreateLang.translate("goggles.blast_stove.tank3"))
.add(CreateLang.number(primaryCapability.orElseGet(null).getFluidInTank(0).getAmount()) .add(CreateLang.number(getControllerBE().primaryCapability.orElseGet(null).getFluidInTank(0).getAmount())
.add(mb) .add(mb)
.add(getControllerBE().primaryCapability.orElseGet(null).getFluidInTank(0).getFluid() == Fluids.EMPTY ? CreateLang.text("") : CreateLang.text(" "+getControllerBE().primaryCapability.orElseGet(null).getFluidInTank(0).getDisplayName().getString()))
.style(ChatFormatting.YELLOW)) .style(ChatFormatting.YELLOW))
.text(ChatFormatting.GRAY, " / ") .text(ChatFormatting.GRAY, " / ")
.add(CreateLang.number(8000) .add(CreateLang.number(8000)
@@ -395,8 +399,9 @@ public class BlastStoveBlockEntity extends FluidTankBlockEntity implements IHave
.forGoggles(tooltip, 1); .forGoggles(tooltip, 1);
CreateLang.builder() CreateLang.builder()
.add(CreateLang.translate("goggles.blast_stove.tank4")) .add(CreateLang.translate("goggles.blast_stove.tank4"))
.add(CreateLang.number(secondaryCapability.orElseGet(null).getFluidInTank(1).getAmount()) .add(CreateLang.number(getControllerBE().secondaryCapability.orElseGet(null).getFluidInTank(1).getAmount())
.add(mb) .add(mb)
.add(getControllerBE().secondaryCapability.orElseGet(null).getFluidInTank(1).getFluid() == Fluids.EMPTY ? CreateLang.text("") : CreateLang.text(" "+getControllerBE().secondaryCapability.orElseGet(null).getFluidInTank(1).getDisplayName().getString()))
.style(ChatFormatting.YELLOW)) .style(ChatFormatting.YELLOW))
.text(ChatFormatting.GRAY, " / ") .text(ChatFormatting.GRAY, " / ")
.add(CreateLang.number(8000) .add(CreateLang.number(8000)

View File

@@ -1,24 +1,22 @@
package com.drmangotea.tfmg.content.machinery.metallurgy.coke_oven; package com.drmangotea.tfmg.content.machinery.metallurgy.coke_oven;
import com.drmangotea.tfmg.TFMG;
import com.drmangotea.tfmg.base.TFMGUtils; import com.drmangotea.tfmg.base.TFMGUtils;
import com.drmangotea.tfmg.config.TFMGConfigs; import com.drmangotea.tfmg.config.TFMGConfigs;
import com.drmangotea.tfmg.content.electricity.base.ConnectNeightborsPacket;
import com.drmangotea.tfmg.recipes.CokingRecipe; import com.drmangotea.tfmg.recipes.CokingRecipe;
import com.drmangotea.tfmg.registry.TFMGBlocks; import com.drmangotea.tfmg.registry.TFMGBlocks;
import com.drmangotea.tfmg.registry.TFMGPackets; import com.drmangotea.tfmg.registry.TFMGPackets;
import com.drmangotea.tfmg.registry.TFMGRecipeTypes; import com.drmangotea.tfmg.registry.TFMGRecipeTypes;
import com.simibubi.create.Create;
import com.simibubi.create.api.equipment.goggles.IHaveGoggleInformation; import com.simibubi.create.api.equipment.goggles.IHaveGoggleInformation;
import com.simibubi.create.foundation.blockEntity.SmartBlockEntity; import com.simibubi.create.foundation.blockEntity.SmartBlockEntity;
import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour; import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour;
import com.simibubi.create.foundation.fluid.CombinedTankWrapper;
import com.simibubi.create.foundation.fluid.SmartFluidTank; import com.simibubi.create.foundation.fluid.SmartFluidTank;
import com.simibubi.create.foundation.item.ItemHelper; import com.simibubi.create.foundation.item.ItemHelper;
import com.simibubi.create.foundation.item.SmartInventory; import com.simibubi.create.foundation.item.SmartInventory;
import com.simibubi.create.foundation.utility.CreateLang;
import net.createmod.catnip.math.VecHelper;
import net.createmod.catnip.animation.LerpedFloat; import net.createmod.catnip.animation.LerpedFloat;
import net.createmod.catnip.lang.LangBuilder;
import net.createmod.catnip.math.VecHelper;
import net.minecraft.ChatFormatting; import net.minecraft.ChatFormatting;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction; import net.minecraft.core.Direction;
@@ -26,7 +24,7 @@ import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.chat.Component; import net.minecraft.network.chat.Component;
import net.minecraft.world.entity.item.ItemEntity; import net.minecraft.world.entity.item.ItemEntity;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.phys.Vec3; import net.minecraft.world.phys.Vec3;
@@ -36,6 +34,7 @@ import net.minecraftforge.common.util.LazyOptional;
import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.capability.IFluidHandler; import net.minecraftforge.fluids.capability.IFluidHandler;
import net.minecraftforge.fluids.capability.templates.FluidTank; import net.minecraftforge.fluids.capability.templates.FluidTank;
import net.minecraftforge.items.IItemHandler;
import net.minecraftforge.items.IItemHandlerModifiable; import net.minecraftforge.items.IItemHandlerModifiable;
import net.minecraftforge.items.wrapper.RecipeWrapper; import net.minecraftforge.items.wrapper.RecipeWrapper;
import net.minecraftforge.network.PacketDistributor; import net.minecraftforge.network.PacketDistributor;
@@ -61,6 +60,7 @@ public class CokeOvenBlockEntity extends SmartBlockEntity implements IHaveGoggle
public BlockPos controller = getBlockPos(); public BlockPos controller = getBlockPos();
public int size = 1; public int size = 1;
public boolean forceOpen = false; public boolean forceOpen = false;
public CokeOvenBlockEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) { public CokeOvenBlockEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) {
super(type, pos, state); super(type, pos, state);
setLazyTickRate(10); setLazyTickRate(10);
@@ -106,7 +106,6 @@ public class CokeOvenBlockEntity extends SmartBlockEntity implements IHaveGoggle
} }
@Override @Override
public void tick() { public void tick() {
super.tick(); super.tick();
@@ -172,15 +171,65 @@ public class CokeOvenBlockEntity extends SmartBlockEntity implements IHaveGoggle
onContentsChanged(); onContentsChanged();
} }
@Override @Override
public boolean addToGoggleTooltip(List<Component> tooltip, boolean isPlayerSneaking) { public boolean addToGoggleTooltip(List<Component> tooltip, boolean isPlayerSneaking) {
CreateLang.translate("goggles.coke_oven.header")
.style(ChatFormatting.GRAY)
.forGoggles(tooltip);
if(level.getBlockEntity(controller) instanceof CokeOvenBlockEntity controller)
if (controller.timer > 0)
CreateLang.translate("goggles.coke_oven.progress", controller.timer / 20)
.style(ChatFormatting.GOLD)
.forGoggles(tooltip);
createFluidTooltip(this,tooltip);
TFMGUtils.createItemTooltip(this, tooltip); TFMGUtils.createItemTooltip(this, tooltip);
return true; return true;
} }
public static boolean createFluidTooltip(CokeOvenBlockEntity be, List<Component> tooltip) {
LangBuilder mb = CreateLang.translate("generic.unit.millibuckets");
/////////
if(be.level.getBlockEntity(be.controller) instanceof CokeOvenBlockEntity controller) {
IFluidHandler tank = new CombinedTankWrapper(controller.primaryTank, controller.secondaryTank);
if (tank.getTanks() == 0) return false;
CreateLang.translate("goggles.fluid_storage").style(ChatFormatting.GRAY).forGoggles(tooltip);
boolean isEmpty = true;
for (int i = 0; i < tank.getTanks(); i++) {
FluidStack fluidStack = tank.getFluidInTank(i);
if (fluidStack.isEmpty()) continue;
CreateLang.fluidName(fluidStack).style(ChatFormatting.GRAY).forGoggles(tooltip, 1);
CreateLang.builder().add(CreateLang.number(fluidStack.getAmount()).add(mb).style(ChatFormatting.DARK_GREEN)).text(ChatFormatting.GRAY, " / ").add(CreateLang.number(tank.getTankCapacity(i)).add(mb).style(ChatFormatting.DARK_GRAY)).forGoggles(tooltip, 1);
isEmpty = false;
}
if (tank.getTanks() > 1) {
if (isEmpty) tooltip.remove(tooltip.size() - 1);
return true;
}
if (!isEmpty) return true;
CreateLang.translate("gui.goggles.fluid_container.capacity").add(CreateLang.number(tank.getTankCapacity(0)).add(mb).style(ChatFormatting.DARK_GREEN)).style(ChatFormatting.DARK_GRAY).forGoggles(tooltip, 1);
}
return true;
}
public void manageDoors(boolean open) { public void manageDoors(boolean open) {
for (int i = 0; i < size; i++) { for (int i = 0; i < size; i++) {
@@ -191,9 +240,11 @@ public class CokeOvenBlockEntity extends SmartBlockEntity implements IHaveGoggle
} }
} }
} }
public boolean isController() { public boolean isController() {
return controller == getBlockPos(); return controller == getBlockPos();
} }
public void createMultiblock() { public void createMultiblock() {
if (level == null) if (level == null)
@@ -209,8 +260,7 @@ public class CokeOvenBlockEntity extends SmartBlockEntity implements IHaveGoggle
for (BlockPos pos : BlockPos.betweenClosed(getBlockPos(), getBlockPos().above(i).relative(facing.getOpposite(), i))) { for (BlockPos pos : BlockPos.betweenClosed(getBlockPos(), getBlockPos().above(i).relative(facing.getOpposite(), i))) {
if (!level.getBlockState(pos).is(TFMGBlocks.COKE_OVEN.get())) { if (!level.getBlockState(pos).is(TFMGBlocks.COKE_OVEN.get())) {
cantBuildMultiblock = true; cantBuildMultiblock = true;
}else } else if (level.getBlockState(pos).is(TFMGBlocks.COKE_OVEN.get()) && level.getBlockState(pos).getValue(FACING) != facing) {
if(level.getBlockState(pos).is(TFMGBlocks.COKE_OVEN.get()) &&level.getBlockState(pos).getValue(FACING) != facing){
cantBuildMultiblock = true; cantBuildMultiblock = true;
} }
} }
@@ -241,6 +291,7 @@ public class CokeOvenBlockEntity extends SmartBlockEntity implements IHaveGoggle
} }
this.size = size; this.size = size;
} }
public void setBlockStates(int size) { public void setBlockStates(int size) {
if (size > 1) { if (size > 1) {
@@ -257,12 +308,14 @@ public class CokeOvenBlockEntity extends SmartBlockEntity implements IHaveGoggle
} }
} }
} }
public void onPlaced() { public void onPlaced() {
createNextTick = true; createNextTick = true;
updateOvenBlocks(); updateOvenBlocks();
if (!level.isClientSide) if (!level.isClientSide)
TFMGPackets.getChannel().send(PacketDistributor.ALL.noArg(), new CokeOvenPacket(getBlockPos())); TFMGPackets.getChannel().send(PacketDistributor.ALL.noArg(), new CokeOvenPacket(getBlockPos()));
} }
@Override @Override
public void remove() { public void remove() {
super.remove(); super.remove();
@@ -288,6 +341,7 @@ public class CokeOvenBlockEntity extends SmartBlockEntity implements IHaveGoggle
} }
} }
} }
private void refreshCapability() { private void refreshCapability() {
LazyOptional<IFluidHandler> oldPrimaryFluidCap = primaryFluidCapability; LazyOptional<IFluidHandler> oldPrimaryFluidCap = primaryFluidCapability;
LazyOptional<IFluidHandler> oldSecondaryFluidCap = secondaryFluidCapability; LazyOptional<IFluidHandler> oldSecondaryFluidCap = secondaryFluidCapability;
@@ -307,8 +361,11 @@ public class CokeOvenBlockEntity extends SmartBlockEntity implements IHaveGoggle
oldSecondaryFluidCap.invalidate(); oldSecondaryFluidCap.invalidate();
oldItemCap.invalidate(); oldItemCap.invalidate();
} }
@Override @Override
public void addBehaviours(List<BlockEntityBehaviour> behaviours) {} public void addBehaviours(List<BlockEntityBehaviour> behaviours) {
}
@Override @Override
public @NotNull <T> LazyOptional<T> getCapability(@NotNull Capability<T> cap, @Nullable Direction side) { public @NotNull <T> LazyOptional<T> getCapability(@NotNull Capability<T> cap, @Nullable Direction side) {
@@ -320,6 +377,9 @@ public class CokeOvenBlockEntity extends SmartBlockEntity implements IHaveGoggle
return super.getCapability(cap, side); return super.getCapability(cap, side);
} }
@Override @Override
protected void write(CompoundTag compound, boolean clientPacket) { protected void write(CompoundTag compound, boolean clientPacket) {
super.write(compound, clientPacket); super.write(compound, clientPacket);
@@ -329,6 +389,7 @@ public class CokeOvenBlockEntity extends SmartBlockEntity implements IHaveGoggle
compound.put("SecondaryTankContent", secondaryTank.writeToNBT(new CompoundTag())); compound.put("SecondaryTankContent", secondaryTank.writeToNBT(new CompoundTag()));
compound.putLong("Controller", controller.asLong()); compound.putLong("Controller", controller.asLong());
} }
@Override @Override
protected void read(CompoundTag compound, boolean clientPacket) { protected void read(CompoundTag compound, boolean clientPacket) {
super.read(compound, clientPacket); super.read(compound, clientPacket);

View File

@@ -5,14 +5,18 @@ import com.drmangotea.tfmg.config.TFMGConfigs;
import com.drmangotea.tfmg.content.machinery.misc.machine_input.MachineInputBlockEntity; import com.drmangotea.tfmg.content.machinery.misc.machine_input.MachineInputBlockEntity;
import com.drmangotea.tfmg.registry.TFMGTags; import com.drmangotea.tfmg.registry.TFMGTags;
import com.simibubi.create.Create; import com.simibubi.create.Create;
import com.simibubi.create.api.equipment.goggles.IHaveGoggleInformation;
import com.simibubi.create.foundation.blockEntity.SmartBlockEntity; import com.simibubi.create.foundation.blockEntity.SmartBlockEntity;
import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour; import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour;
import com.simibubi.create.foundation.blockEntity.behaviour.ValueBoxTransform; import com.simibubi.create.foundation.blockEntity.behaviour.ValueBoxTransform;
import com.simibubi.create.foundation.blockEntity.behaviour.scrollValue.ScrollValueBehaviour; import com.simibubi.create.foundation.blockEntity.behaviour.scrollValue.ScrollValueBehaviour;
import com.simibubi.create.foundation.utility.CreateLang;
import net.createmod.catnip.math.VecHelper; import net.createmod.catnip.math.VecHelper;
import net.minecraft.ChatFormatting;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction; import net.minecraft.core.Direction;
import net.minecraft.network.chat.Component;
import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.BlockState;
@@ -23,7 +27,7 @@ import net.minecraft.world.phys.Vec3;
import java.util.List; import java.util.List;
import java.util.Random; import java.util.Random;
public class SurfaceScannerBlockEntity extends SmartBlockEntity { public class SurfaceScannerBlockEntity extends SmartBlockEntity implements IHaveGoggleInformation {
public Boolean[][] grid = new Boolean[5][5]; public Boolean[][] grid = new Boolean[5][5];
@@ -34,6 +38,38 @@ public class SurfaceScannerBlockEntity extends SmartBlockEntity {
} }
@Override
public boolean addToGoggleTooltip(List<Component> tooltip, boolean isPlayerSneaking) {
CreateLang.translate("goggles.surface_scanner.header")
.style(ChatFormatting.GRAY)
.forGoggles(tooltip);
if(level.getBlockEntity(getBlockPos().below()) instanceof MachineInputBlockEntity be&&Math.abs(be.getSpeed())>=64) {
int depositsFound = 0;
for(Boolean[] row : grid){
for(Boolean light : row){
if(light)
depositsFound++;
}
}
if(depositsFound>0){
CreateLang.number(depositsFound)
.add(CreateLang.translate("goggles.surface_scanner.deposits_found"))
.style(ChatFormatting.GREEN)
.forGoggles(tooltip);
}else
CreateLang.translate("goggles.surface_scanner.no_deposit")
.style(ChatFormatting.RED)
.forGoggles(tooltip);
}else
CreateLang.translate("goggles.surface_scanner.no_rotation")
.style(ChatFormatting.DARK_RED)
.forGoggles(tooltip);
return true;
}
@Override @Override
public void addBehaviours(List<BlockEntityBehaviour> behaviours) {} public void addBehaviours(List<BlockEntityBehaviour> behaviours) {}

View File

@@ -18,6 +18,7 @@ import net.createmod.catnip.animation.LerpedFloat;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction; import net.minecraft.core.Direction;
import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.CompoundTag;
import net.minecraft.world.Containers;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.BlockState;
@@ -65,7 +66,10 @@ public class IndustrialMixerBlockEntity extends KineticBlockEntity implements IV
} }
public void destroy() {
ItemStack mixerItem = mixerMode.item;
Containers.dropItemStack(getLevel(), getBlockPos().getX(), getBlockPos().getY(), getBlockPos().getZ(), mixerItem);
}

View File

@@ -0,0 +1,20 @@
package com.drmangotea.tfmg.mixin;
import net.minecraft.Util;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(Util.class)
public class UtilMixin {
@Inject(at = @At("HEAD"), method = "logAndPauseIfInIde(Ljava/lang/String;)V", cancellable = true, remap = true)
private static void logAndPauseIfInIde(String message, CallbackInfo ci) {
if (message.contains("tfmg"))
ci.cancel();
}
}

View File

@@ -310,7 +310,7 @@ public class TFMGBlockEntities {
.blockEntity("engine_gearbox", EngineGearboxBlockEntity::new) .blockEntity("engine_gearbox", EngineGearboxBlockEntity::new)
.visual(() -> SingleAxisRotatingVisual::shaft) .visual(() -> SingleAxisRotatingVisual::shaft)
.validBlocks(TFMGBlocks.ENGINE_GEARBOX) .validBlocks(TFMGBlocks.ENGINE_GEARBOX)
.renderer(() -> EngineGearboxRenderer::new) .renderer(() -> ShaftRenderer::new)
.register(); .register();
public static final BlockEntityEntry<EngineControllerBlockEntity> ENGINE_CONTROLLER = REGISTRATE public static final BlockEntityEntry<EngineControllerBlockEntity> ENGINE_CONTROLLER = REGISTRATE

View File

@@ -142,8 +142,12 @@ public class TFMGItems {
.register(), .register(),
CINDERFLOURBLOCK = REGISTRATE.item("cinderflourblock", Item::new).register(), CINDERFLOURBLOCK = REGISTRATE.item("cinderflourblock", Item::new).register(),
NAPALM_POTATO = REGISTRATE.item("napalm_potato", Item::new).register(), NAPALM_POTATO = REGISTRATE.item("napalm_potato", Item::new).register(),
MIXER_BLADE = REGISTRATE.item("mixer_blade", Item::new).register(), MIXER_BLADE = REGISTRATE.item("mixer_blade", Item::new)
CENTRIFUGE = REGISTRATE.item("centrifuge", Item::new).register(), .properties(p->p.stacksTo(1))
.register(),
CENTRIFUGE = REGISTRATE.item("centrifuge", Item::new)
.properties(p->p.stacksTo(1))
.register(),
CRANKSHAFT = REGISTRATE.item("crankshaft", Item::new) CRANKSHAFT = REGISTRATE.item("crankshaft", Item::new)
.model((c, p) -> p.withExistingParent(c.getName(), TFMG.asResource("item/crankshaft_model"))) .model((c, p) -> p.withExistingParent(c.getName(), TFMG.asResource("item/crankshaft_model")))
.register(), .register(),

View File

@@ -45,7 +45,7 @@ public class TFMGPlacedFeatures {
register(ctx, OIL_DEPOSIT,oilDeposit,oilPlacement(RarityFilter.onAverageOnceEvery(4))); register(ctx, OIL_DEPOSIT,oilDeposit,oilPlacement(RarityFilter.onAverageOnceEvery(4)));
register(ctx, OIL_WELL,oilWell,oilPlacement(RarityFilter.onAverageOnceEvery(500))); register(ctx, OIL_WELL,oilWell,oilPlacement(RarityFilter.onAverageOnceEvery(750)));
register(ctx, LEAD_ORE, leadOre, placement(CountPlacement.of(5), -15, 80)); register(ctx, LEAD_ORE, leadOre, placement(CountPlacement.of(5), -15, 80));
register(ctx, NICKEL_ORE, nickelOre, placement(CountPlacement.of(5), -63, 20)); register(ctx, NICKEL_ORE, nickelOre, placement(CountPlacement.of(5), -63, 20));

View File

@@ -9,6 +9,7 @@ import net.minecraft.core.Direction;
import net.minecraft.util.RandomSource; import net.minecraft.util.RandomSource;
import net.minecraft.world.level.Level; import net.minecraft.world.level.Level;
import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.level.WorldGenLevel;
import net.minecraft.world.level.chunk.ChunkAccess;
import net.minecraft.world.level.levelgen.feature.Feature; import net.minecraft.world.level.levelgen.feature.Feature;
import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext; import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext;
import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration;
@@ -41,6 +42,8 @@ public class OilDepositFeature extends Feature<NoneFeatureConfiguration> {
public void placeDeposit(BlockPos startingPos, WorldGenLevel level, RandomSource randomsource) { public void placeDeposit(BlockPos startingPos, WorldGenLevel level, RandomSource randomsource) {
BlockPos pos = startingPos; BlockPos pos = startingPos;
level.setBlock(startingPos, TFMGBlocks.OIL_DEPOSIT.getDefaultState(), 2); level.setBlock(startingPos, TFMGBlocks.OIL_DEPOSIT.getDefaultState(), 2);

View File

@@ -6,10 +6,10 @@
"create.goggles.item_storage": "Item Storage:", "create.goggles.item_storage": "Item Storage:",
"create.goggles.item_storage_empty": "*Empty*", "create.goggles.item_storage_empty": "*Empty*",
"create.goggles.surface_scanner.no_deposit": "No Deposit Found", "create.goggles.surface_scanner.header": "Surface Scanner",
"create.goggles.surface_scanner.deposit_found": "Deposit Located!", "create.goggles.surface_scanner.no_deposit": "No Deposits Found",
"create.goggles.surface_scanner.distance": "Distance: %1$s Blocks", "create.goggles.surface_scanner.no_rotation": "Not Enough Rotation (Needs 64rpm)",
"create.goggles.surface_scanner.scanning_surface": "Scanning The Surface", "create.goggles.surface_scanner.deposits_found": " Chunks With Oil Deposits Found",
"create.goggles.distillation_tower.status": "Distillation Tower Info:", "create.goggles.distillation_tower.status": "Distillation Tower Info:",
"create.goggles.distillation_tower.tank_not_found": "Steel Fluid Tank Not Found", "create.goggles.distillation_tower.tank_not_found": "Steel Fluid Tank Not Found",
@@ -28,8 +28,8 @@
"create.goggles.blast_furnace.batch_warning": "Warning: Large batch size.", "create.goggles.blast_furnace.batch_warning": "Warning: Large batch size.",
"create.goggles.blast_stove.header": "Blast Stove: ", "create.goggles.blast_stove.header": "Blast Stove: ",
"create.goggles.blast_stove.tank1": "Input Tank 1: ", "create.goggles.blast_stove.tank1": "Input Tank: ",
"create.goggles.blast_stove.tank2": "Input Tank 2: ", "create.goggles.blast_stove.tank2": "Fuel Tank: ",
"create.goggles.blast_stove.tank3": "Output Tank 1: ", "create.goggles.blast_stove.tank3": "Output Tank 1: ",
"create.goggles.blast_stove.tank4": "Output Tank 2: ", "create.goggles.blast_stove.tank4": "Output Tank 2: ",

View File

@@ -10,6 +10,7 @@
"FluidTankBlockEntityMixin", "FluidTankBlockEntityMixin",
"GoggleOverlayRendererMixin", "GoggleOverlayRendererMixin",
"PipeAttachmentModelMixin", "PipeAttachmentModelMixin",
"UtilMixin",
"accessor.FluidTankBlockEntityAccessor", "accessor.FluidTankBlockEntityAccessor",
"accessor.TankSegmentAccessor" "accessor.TankSegmentAccessor"
], ],