Solid Canning Machine
This commit is contained in:
parent
2d34ebc480
commit
5511b598d7
12 changed files with 176 additions and 1 deletions
|
@ -0,0 +1,59 @@
|
|||
/*
|
||||
* This file is part of TechReborn, licensed under the MIT License (MIT).
|
||||
*
|
||||
* Copyright (c) 2018 TechReborn
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in all
|
||||
* copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
package techreborn.blockentity.machine.tier1;
|
||||
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import reborncore.client.containerBuilder.IContainerProvider;
|
||||
import reborncore.client.containerBuilder.builder.BuiltContainer;
|
||||
import reborncore.client.containerBuilder.builder.ContainerBuilder;
|
||||
import reborncore.common.recipes.RecipeCrafter;
|
||||
import reborncore.common.util.RebornInventory;
|
||||
import techreborn.blockentity.GenericMachineBlockEntity;
|
||||
import techreborn.config.TechRebornConfig;
|
||||
import techreborn.init.ModRecipes;
|
||||
import techreborn.init.TRBlockEntities;
|
||||
import techreborn.init.TRContent;
|
||||
|
||||
public class SoildCanningMachineBlockEntity extends GenericMachineBlockEntity implements IContainerProvider {
|
||||
|
||||
public SoildCanningMachineBlockEntity() {
|
||||
super(TRBlockEntities.SOLID_CANNING_MACHINE, "SolidCanningMachine", TechRebornConfig.solidCanningMachineMaxInput, TechRebornConfig.solidFuelGeneratorMaxEnergy, TRContent.Machine.SOLID_CANNING_MACHINE.block, 3);
|
||||
final int[] inputs = new int[] { 0, 1 };
|
||||
final int[] outputs = new int[] { 2 };
|
||||
this.inventory = new RebornInventory<>(4, "SolidCanningMachineBlockEntity", 64, this);
|
||||
this.crafter = new RecipeCrafter(ModRecipes.SOLID_CANNING_MACHINE, this, 2, 1, this.inventory, inputs, outputs);
|
||||
}
|
||||
|
||||
// IContainerProvider
|
||||
@Override
|
||||
public BuiltContainer createContainer(int syncID, final PlayerEntity player) {
|
||||
return new ContainerBuilder("solidcanningmachine").player(player.inventory).inventory().hotbar()
|
||||
.addInventory().blockEntity(this)
|
||||
.slot(0, 34, 47)
|
||||
.slot(1, 126, 47)
|
||||
.outputSlot(2, 80, 47).energySlot(3, 8, 72).syncEnergyValue().syncCrafterValue().addInventory()
|
||||
.create(this, syncID);
|
||||
}
|
||||
}
|
|
@ -78,6 +78,7 @@ public enum EGui implements IMachineGuiHandler {
|
|||
SEMIFLUID_GENERATOR(true),
|
||||
THERMAL_GENERATOR(true),
|
||||
VACUUM_FREEZER(true),
|
||||
SOLID_CANNING_MACHINE(true),
|
||||
FLUID_REPLICATOR(true);
|
||||
|
||||
private final boolean containerBuilder;
|
||||
|
|
|
@ -162,6 +162,8 @@ public class GuiHandler {
|
|||
return new GuiDistillationTower(syncID, player, (DistillationTowerBlockEntity) blockEntity);
|
||||
case FLUID_REPLICATOR:
|
||||
return new GuiFluidReplicator(syncID, player, (FluidReplicatorBlockEntity) blockEntity);
|
||||
case SOLID_CANNING_MACHINE:
|
||||
return new GuiSolidCanningMachine(syncID, player, (SoildCanningMachineBlockEntity) blockEntity);
|
||||
default:
|
||||
break;
|
||||
|
||||
|
|
|
@ -0,0 +1,67 @@
|
|||
/*
|
||||
* This file is part of TechReborn, licensed under the MIT License (MIT).
|
||||
*
|
||||
* Copyright (c) 2018 TechReborn
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in all
|
||||
* copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
package techreborn.client.gui;
|
||||
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import reborncore.client.containerBuilder.builder.BuiltContainer;
|
||||
import reborncore.client.gui.builder.GuiBase;
|
||||
import reborncore.client.gui.guibuilder.GuiBuilder;
|
||||
import techreborn.blockentity.machine.tier1.AlloySmelterBlockEntity;
|
||||
import techreborn.blockentity.machine.tier1.SoildCanningMachineBlockEntity;
|
||||
|
||||
public class GuiSolidCanningMachine extends GuiBase<BuiltContainer> {
|
||||
|
||||
SoildCanningMachineBlockEntity blockEntity;
|
||||
|
||||
public GuiSolidCanningMachine(int syncID, final PlayerEntity player, final SoildCanningMachineBlockEntity blockEntity) {
|
||||
super(player, blockEntity, blockEntity.createContainer(syncID, player));
|
||||
this.blockEntity = blockEntity;
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void drawBackground(final float f, final int mouseX, final int mouseY) {
|
||||
super.drawBackground(f, mouseX, mouseY);
|
||||
final Layer layer = Layer.BACKGROUND;
|
||||
|
||||
drawSlot(8, 72, layer);
|
||||
|
||||
drawSlot(34, 47, layer);
|
||||
drawSlot(126, 47, layer);
|
||||
drawOutputSlot(80, 47, layer);
|
||||
|
||||
builder.drawJEIButton(this, 158, 5, layer);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void drawForeground(final int mouseX, final int mouseY) {
|
||||
super.drawForeground(mouseX, mouseY);
|
||||
final Layer layer = Layer.FOREGROUND;
|
||||
|
||||
builder.drawProgressBar(this, blockEntity.getProgressScaled(100), 100, 55, 51, mouseX, mouseY, GuiBuilder.ProgressDirection.RIGHT, layer);
|
||||
builder.drawProgressBar(this, blockEntity.getProgressScaled(100), 100, 105, 51, mouseX, mouseY, GuiBuilder.ProgressDirection.LEFT, layer);
|
||||
builder.drawMultiEnergyBar(this, 9, 19, (int) blockEntity.getEnergy(), (int) blockEntity.getMaxPower(), mouseX, mouseY, 0, layer);
|
||||
}
|
||||
}
|
|
@ -484,4 +484,10 @@ public class TechRebornConfig {
|
|||
|
||||
@Config(config = "misc", category = "general", key = "manualRefund", comment = "Allow refunding items used to craft the manual")
|
||||
public static boolean allowManualRefund = true;
|
||||
|
||||
@Config(config = "machines", category = "solid_canning_machine", key = "solidCanningMachineMaxInput", comment = "Solid Canning Machine Max Input (Value in EU)")
|
||||
public static int solidCanningMachineMaxInput = 32;
|
||||
|
||||
@Config(config = "machines", category = "solid_canning_machine", key = "solidCanningMachineMaxInput", comment = "Solid Canning Machine Max Energy (Value in EU)")
|
||||
public static int solidCanningMachineMaxEnergy = 1_000;
|
||||
}
|
||||
|
|
|
@ -51,5 +51,5 @@ public class ModRecipes {
|
|||
public static final RebornRecipeType<FluidReplicatorRecipe> FLUID_REPLICATOR = RecipeManager.newRecipeType(FluidReplicatorRecipe.class, new Identifier("techreborn:fluid_replicator"));
|
||||
public static final RebornRecipeType<FusionReactorRecipe> FUSION_REACTOR = RecipeManager.newRecipeType(FusionReactorRecipe.class, new Identifier("techreborn:fusion_reactor"));
|
||||
public static final RebornRecipeType<RollingMachineRecipe> ROLLING_MACHINE = RecipeManager.newRecipeType(RollingMachineRecipe.class, new Identifier("techreborn:rolling_machine"));
|
||||
|
||||
public static final RebornRecipeType<RebornRecipe> SOLID_CANNING_MACHINE = RecipeManager.newRecipeType(RebornRecipe.class, new Identifier("techreborn:solid_canning_machine"));
|
||||
}
|
||||
|
|
|
@ -124,6 +124,7 @@ public class TRBlockEntities {
|
|||
public static final BlockEntityType<LampBlockEntity> LAMP = register(LampBlockEntity.class, "lamp", TRContent.Machine.LAMP_INCANDESCENT, TRContent.Machine.LAMP_LED);
|
||||
public static final BlockEntityType<AlarmBlockEntity> ALARM = register(AlarmBlockEntity.class, "alarm", TRContent.Machine.ALARM);
|
||||
public static final BlockEntityType<FluidReplicatorBlockEntity> FLUID_REPLICATOR = register(FluidReplicatorBlockEntity.class, "fluid_replicator", TRContent.Machine.FLUID_REPLICATOR);
|
||||
public static final BlockEntityType<SoildCanningMachineBlockEntity> SOLID_CANNING_MACHINE = register(SoildCanningMachineBlockEntity.class, "solid_canning_machine", TRContent.Machine.SOLID_CANNING_MACHINE);
|
||||
|
||||
public static <T extends BlockEntity> BlockEntityType<T> register(Class<T> tClass, String name, ItemConvertible... items) {
|
||||
return register(tClass, name, Arrays.stream(items).map(itemConvertible -> Block.getBlockFromItem(itemConvertible.asItem())).toArray(Block[]::new));
|
||||
|
|
|
@ -397,6 +397,7 @@ public class TRContent {
|
|||
ROLLING_MACHINE(new GenericMachineBlock(EGui.ROLLING_MACHINE, RollingMachineBlockEntity::new)),
|
||||
SCRAPBOXINATOR(new GenericMachineBlock(EGui.SCRAPBOXINATOR, ScrapboxinatorBlockEntity::new)),
|
||||
VACUUM_FREEZER(new GenericMachineBlock(EGui.VACUUM_FREEZER, VacuumFreezerBlockEntity::new)),
|
||||
SOLID_CANNING_MACHINE(new GenericMachineBlock(EGui.SOLID_CANNING_MACHINE, SoildCanningMachineBlockEntity::new)),
|
||||
|
||||
DIESEL_GENERATOR(new GenericMachineBlock(EGui.DIESEL_GENERATOR, DieselGeneratorBlockEntity::new)),
|
||||
DRAGON_EGG_SYPHON(new GenericMachineBlock(null, DragonEggSyphonBlockEntity::new)),
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"variants": {
|
||||
"facing=north,active=false": { "model": "techreborn:block/machines/tier1_machines/compressor" },
|
||||
"facing=south,active=false": { "model": "techreborn:block/machines/tier1_machines/compressor", "y": 180 },
|
||||
"facing=west,active=false": { "model": "techreborn:block/machines/tier1_machines/compressor", "y": 270 },
|
||||
"facing=east,active=false": { "model": "techreborn:block/machines/tier1_machines/compressor", "y": 90 },
|
||||
"facing=north,active=true": { "model": "techreborn:block/machines/tier1_machines/compressor_on" },
|
||||
"facing=south,active=true": { "model": "techreborn:block/machines/tier1_machines/compressor_on", "y": 180 },
|
||||
"facing=west,active=true": { "model": "techreborn:block/machines/tier1_machines/compressor_on", "y": 270 },
|
||||
"facing=east,active=true": { "model": "techreborn:block/machines/tier1_machines/compressor_on", "y": 90 }
|
||||
}
|
||||
}
|
|
@ -78,6 +78,7 @@
|
|||
"block.techreborn.lamp_led": "LED Lamp",
|
||||
"block.techreborn.alarm": "Alarm",
|
||||
"block.techreborn.farm": "Farm",
|
||||
"block.techreborn.solid_canning_machine": "Solid Canning Machine",
|
||||
|
||||
|
||||
"_comment1": "Blocks",
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"parent": "techreborn:block/machines/tier1_machines/compressor"
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"type": "techreborn:solid_canning_machine",
|
||||
"power": 1,
|
||||
"time": 100,
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "techreborn:cell",
|
||||
"nbt": "empty"
|
||||
},
|
||||
{
|
||||
"item": "techreborn:compressed_plantball"
|
||||
}
|
||||
],
|
||||
"results": [
|
||||
{
|
||||
"item": "techreborn:cell",
|
||||
"nbt": {
|
||||
"fluid": "techreborn:biofuel"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
Loading…
Add table
Reference in a new issue