Wire Mill

This commit is contained in:
modmuss50 2019-08-19 19:51:05 +01:00
parent 066d1bc9e2
commit 20517d4c32
19 changed files with 237 additions and 1 deletions

View file

@ -0,0 +1,62 @@
/*
* 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 WireMillBlockEntity extends GenericMachineBlockEntity implements IContainerProvider {
public WireMillBlockEntity() {
super(TRBlockEntities.WIRE_MILL, "WireMill", 32, 1000, TRContent.Machine.WIRE_MILL.block, 2);
final int[] inputs = new int[] { 0 };
final int[] outputs = new int[] { 1 };
this.inventory = new RebornInventory<>(3, "WireMillBlockEntity", 64, this);
this.crafter = new RecipeCrafter(ModRecipes.WIRE_MILL, this, 1, 1, this.inventory, inputs, outputs);
}
// IContainerProvider
@Override
public BuiltContainer createContainer(int syncID, final PlayerEntity player) {
return new ContainerBuilder("wiremill").player(player.inventory).inventory().hotbar()
.addInventory().blockEntity(this)
.slot(0, 55, 45)
.outputSlot(1, 101, 45)
.energySlot(2, 8, 72)
.syncEnergyValue()
.syncCrafterValue()
.addInventory()
.create(this, syncID);
}
}

View file

@ -79,6 +79,7 @@ public enum EGui implements IMachineGuiHandler {
THERMAL_GENERATOR(true),
VACUUM_FREEZER(true),
SOLID_CANNING_MACHINE(true),
WIRE_MILL(true),
FLUID_REPLICATOR(true);
private final boolean containerBuilder;

View file

@ -164,6 +164,8 @@ public class GuiHandler {
return new GuiFluidReplicator(syncID, player, (FluidReplicatorBlockEntity) blockEntity);
case SOLID_CANNING_MACHINE:
return new GuiSolidCanningMachine(syncID, player, (SoildCanningMachineBlockEntity) blockEntity);
case WIRE_MILL:
return new GuiWireMill(syncID, player, (WireMillBlockEntity) blockEntity);
default:
break;

View file

@ -0,0 +1,68 @@
/*
* 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.AssemblingMachineBlockEntity;
import techreborn.blockentity.machine.tier1.WireMillBlockEntity;
public class GuiWireMill extends GuiBase<BuiltContainer> {
WireMillBlockEntity blockEntity;
public GuiWireMill(int syncID, final PlayerEntity player, final WireMillBlockEntity blockEntity) {
super(player, blockEntity, blockEntity.createContainer(syncID, player));
this.blockEntity = blockEntity;
}
@Override
protected void drawBackground(final float partialTicks, final int mouseX, final int mouseY) {
super.drawBackground(partialTicks, mouseX, mouseY);
final Layer layer = Layer.BACKGROUND;
// Battery slot
drawSlot(8, 72, layer);
// Input slots
drawSlot(55, 45, layer);
drawSlot(101, 45, layer);
drawOutputSlot(101, 45, 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, 76, 48, mouseX, mouseY, GuiBuilder.ProgressDirection.RIGHT, layer);
builder.drawMultiEnergyBar(this, 9, 19, (int) blockEntity.getEnergy(), (int) blockEntity.getMaxPower(), mouseX, mouseY, 0, layer);
}
}

View file

@ -52,4 +52,5 @@ public class ModRecipes {
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"));
public static final RebornRecipeType<RebornRecipe> WIRE_MILL = RecipeManager.newRecipeType(RebornRecipe.class, new Identifier("techreborn:wire_mill"));
}

View file

@ -127,6 +127,7 @@ public class TRBlockEntities {
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 final BlockEntityType<WireMillBlockEntity> WIRE_MILL = register(WireMillBlockEntity.class, "wire_mill", TRContent.Machine.WIRE_MILL);
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));

View file

@ -399,6 +399,7 @@ public class TRContent {
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)),
WIRE_MILL(new GenericMachineBlock(EGui.WIRE_MILL, WireMillBlockEntity::new)),
DIESEL_GENERATOR(new GenericMachineBlock(EGui.DIESEL_GENERATOR, DieselGeneratorBlockEntity::new)),
DRAGON_EGG_SYPHON(new GenericMachineBlock(null, DragonEggSyphonBlockEntity::new)),

View file

@ -0,0 +1,12 @@
{
"variants": {
"facing=north,active=false": { "model": "techreborn:block/machines/tier1_machines/wire_mill" },
"facing=south,active=false": { "model": "techreborn:block/machines/tier1_machines/wire_mill", "y": 180 },
"facing=west,active=false": { "model": "techreborn:block/machines/tier1_machines/wire_mill", "y": 270 },
"facing=east,active=false": { "model": "techreborn:block/machines/tier1_machines/wire_mill", "y": 90 },
"facing=north,active=true": { "model": "techreborn:block/machines/tier1_machines/wire_mill_on" },
"facing=south,active=true": { "model": "techreborn:block/machines/tier1_machines/wire_mill_on", "y": 180 },
"facing=west,active=true": { "model": "techreborn:block/machines/tier1_machines/wire_mill_on", "y": 270 },
"facing=east,active=true": { "model": "techreborn:block/machines/tier1_machines/wire_mill_on", "y": 90 }
}
}

View file

@ -79,7 +79,7 @@
"block.techreborn.alarm": "Alarm",
"block.techreborn.farm": "Farm",
"block.techreborn.solid_canning_machine": "Solid Canning Machine",
"block.techreborn.wire_mill": "Wire Mill",
"_comment1": "Blocks",
"block.techreborn.rubber_log": "Rubber Wood",

View file

@ -0,0 +1,8 @@
{
"parent": "minecraft:block/orientable",
"textures": {
"top": "techreborn:block/machines/tier1_machines/machine_top",
"front": "techreborn:block/machines/tier1_machines/wiremill_front_off",
"side": "techreborn:block/machines/tier1_machines/machine_side"
}
}

View file

@ -0,0 +1,8 @@
{
"parent": "minecraft:block/orientable",
"textures": {
"top": "techreborn:block/machines/tier1_machines/machine_top",
"front": "techreborn:block/machines/tier1_machines/wiremill_front_on",
"side": "techreborn:block/machines/tier1_machines/machine_side"
}
}

View file

@ -0,0 +1,3 @@
{
"parent": "techreborn:block/machines/tier1_machines/wire_mill"
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 842 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1 KiB

View file

@ -0,0 +1,5 @@
{
"animation": {
"frametime": 3
}
}

View file

@ -0,0 +1,16 @@
{
"type": "techreborn:wire_mill",
"power": 2,
"time": 200,
"ingredients": [
{
"tag": "c:copper_ingot"
}
],
"results": [
{
"item": "techreborn:copper_cable",
"count": 6
}
]
}

View file

@ -0,0 +1,16 @@
{
"type": "techreborn:wire_mill",
"power": 2,
"time": 200,
"ingredients": [
{
"item": "minecraft:gold_ingot"
}
],
"results": [
{
"item": "techreborn:gold_cable",
"count": 6
}
]
}

View file

@ -0,0 +1,16 @@
{
"type": "techreborn:wire_mill",
"power": 2,
"time": 200,
"ingredients": [
{
"item": "techreborn:refined_iron_ingot"
}
],
"results": [
{
"item": "techreborn:hv_cable",
"count": 6
}
]
}

View file

@ -0,0 +1,16 @@
{
"type": "techreborn:wire_mill",
"power": 2,
"time": 200,
"ingredients": [
{
"tag": "c:tin_ingot"
}
],
"results": [
{
"item": "techreborn:tin_cable",
"count": 6
}
]
}