Update to latest commit(Master)
This commit is contained in:
parent
c8b6edd390
commit
c651363b73
12 changed files with 174 additions and 135 deletions
|
@ -22,17 +22,19 @@
|
|||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
package techreborn.blocks.generator;
|
||||
package techreborn.blocks.generator.solarpanel;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import java.util.List;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.block.properties.PropertyBool;
|
||||
import net.minecraft.block.properties.IProperty;
|
||||
import net.minecraft.block.properties.PropertyEnum;
|
||||
import net.minecraft.block.state.BlockStateContainer;
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.creativetab.CreativeTabs;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.NonNullList;
|
||||
import net.minecraft.world.World;
|
||||
import prospector.shootingstar.ShootingStar;
|
||||
import prospector.shootingstar.model.ModelCompound;
|
||||
|
@ -45,30 +47,36 @@ import techreborn.tiles.generator.TileSolarPanel;
|
|||
* Created by modmuss50 on 25/02/2016.
|
||||
*/
|
||||
public class BlockSolarPanel extends BaseTileBlock {
|
||||
|
||||
public static PropertyBool ACTIVE = PropertyBool.create("active");
|
||||
public static final String[] panes = new String[] {
|
||||
"basic", "hybrid", "advanced", "ultimate", "quantum"};
|
||||
public static final PropertyEnum TYPE = PropertyEnum.create("type", EnumPanelType.class);
|
||||
|
||||
public BlockSolarPanel() {
|
||||
super(Material.IRON);
|
||||
setCreativeTab(TechRebornCreativeTab.instance);
|
||||
this.setDefaultState(this.getDefaultState().withProperty(ACTIVE, false));
|
||||
this.setDefaultState(this.getBlockState().getBaseState().withProperty(TYPE, EnumPanelType.Basic));
|
||||
setHardness(2.0F);
|
||||
ShootingStar.registerModel(new ModelCompound(ModInfo.MOD_ID, this, "machines/generators"));
|
||||
this.setDefaultState(this.getStateFromMeta(0));
|
||||
for (int i = 0; i < panes.length; i++) {
|
||||
ShootingStar.registerModel(new ModelCompound(ModInfo.MOD_ID, this, i).setInvVariant("type=" + panes[i]).setFileName("ores"));
|
||||
}
|
||||
}
|
||||
|
||||
protected BlockStateContainer createBlockState() {
|
||||
ACTIVE = PropertyBool.create("active");
|
||||
return new BlockStateContainer(this, ACTIVE);
|
||||
return new BlockStateContainer(this, new IProperty[]{TYPE});
|
||||
}
|
||||
|
||||
@Override
|
||||
public IBlockState getStateFromMeta(int meta) {
|
||||
return getDefaultState().withProperty(ACTIVE, meta != 0);
|
||||
return getDefaultState().withProperty(TYPE, EnumPanelType.values()[meta]);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMetaFromState(IBlockState state) {
|
||||
return state.getValue(ACTIVE) ? 1 : 0;
|
||||
EnumPanelType type = (EnumPanelType) state.getValue(TYPE);
|
||||
|
||||
return type.getID();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -77,31 +85,9 @@ public class BlockSolarPanel extends BaseTileBlock {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void neighborChanged(IBlockState state, World worldIn, BlockPos pos, Block neighborBlock, BlockPos p_189540_5_) {
|
||||
if (worldIn.canBlockSeeSky(pos.up()) && !worldIn.isRaining() && !worldIn.isThundering()
|
||||
&& worldIn.isDaytime()) {
|
||||
worldIn.setBlockState(pos,
|
||||
worldIn.getBlockState(pos).withProperty(BlockSolarPanel.ACTIVE, true));
|
||||
} else {
|
||||
|
||||
worldIn.setBlockState(pos,
|
||||
worldIn.getBlockState(pos).withProperty(BlockSolarPanel.ACTIVE, false));
|
||||
public void getSubBlocks(CreativeTabs tab, NonNullList<ItemStack> list) {
|
||||
for (EnumPanelType panelType : EnumPanelType.values()) {
|
||||
list.add(new ItemStack(this, 1, panelType.ordinal()));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public IBlockState getStateForPlacement(World worldIn, BlockPos pos, EnumFacing facing, float hitX, float hitY,
|
||||
float hitZ, int meta, EntityLivingBase placer) {
|
||||
if (!worldIn.isRemote) {
|
||||
if (worldIn.canBlockSeeSky(pos.up()) && !worldIn.isRaining() && !worldIn.isThundering() && worldIn.isDaytime()) {
|
||||
return this.getDefaultState().withProperty(ACTIVE, true);
|
||||
|
||||
} else {
|
||||
return this.getDefaultState().withProperty(ACTIVE, false);
|
||||
}
|
||||
} else {
|
||||
return this.getDefaultState().withProperty(ACTIVE, false);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,34 @@
|
|||
package techreborn.blocks.generator.solarpanel;
|
||||
|
||||
import net.minecraft.util.IStringSerializable;
|
||||
import reborncore.api.power.EnumPowerTier;
|
||||
|
||||
public enum EnumPanelType implements IStringSerializable {
|
||||
Basic("basic", 128, EnumPowerTier.LOW, 0),
|
||||
Hybrid("hybrid", 32, EnumPowerTier.MEDIUM, 1),
|
||||
Advanced("advanced", 512, EnumPowerTier.MEDIUM, 2),
|
||||
Ultimate("ultimate", 2048, EnumPowerTier.HIGH, 3),
|
||||
Quantum("quantum", 2048, EnumPowerTier.EXTREME, 4);
|
||||
|
||||
private int ID;
|
||||
public int generationRate = 128;
|
||||
private String friendlyName;
|
||||
|
||||
EnumPanelType(String friendlyName, int generationRate, EnumPowerTier tier, int ID) {
|
||||
this.friendlyName = friendlyName;
|
||||
this.generationRate = generationRate;
|
||||
this.ID = ID;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return friendlyName.toLowerCase();
|
||||
}
|
||||
|
||||
|
||||
public int getID(){
|
||||
return ID;
|
||||
}
|
||||
}
|
|
@ -40,6 +40,7 @@ import techreborn.blocks.*;
|
|||
import techreborn.blocks.advanced_machine.*;
|
||||
import techreborn.blocks.cable.BlockCable;
|
||||
import techreborn.blocks.generator.*;
|
||||
import techreborn.blocks.generator.solarpanel.BlockSolarPanel;
|
||||
import techreborn.blocks.iron_machines.BlockIronAlloyFurnace;
|
||||
import techreborn.blocks.iron_machines.BlockIronFurnace;
|
||||
import techreborn.blocks.machine.*;
|
||||
|
@ -328,7 +329,7 @@ public class ModBlocks {
|
|||
GameRegistry.registerTileEntity(TileElectricFurnace.class, "TileElectricFurnaceTR");
|
||||
|
||||
SOLAR_PANEL = new BlockSolarPanel();
|
||||
registerBlock(SOLAR_PANEL, "solar_panel");
|
||||
registerBlock(SOLAR_PANEL, ItemBlockSolarPanel.class, "solar_panel");
|
||||
GameRegistry.registerTileEntity(TileSolarPanel.class, "TileSolarPanelTR");
|
||||
|
||||
CREATIVE_SOLAR_PANEL = new BlockCreativeSolarPanel();
|
||||
|
|
18
src/main/java/techreborn/itemblocks/ItemBlockSolarPanel.java
Normal file
18
src/main/java/techreborn/itemblocks/ItemBlockSolarPanel.java
Normal file
|
@ -0,0 +1,18 @@
|
|||
package techreborn.itemblocks;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.item.ItemBlock;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import techreborn.blocks.generator.solarpanel.EnumPanelType;
|
||||
|
||||
public class ItemBlockSolarPanel extends ItemBlock {
|
||||
|
||||
public ItemBlockSolarPanel(Block block) {
|
||||
super(block);
|
||||
setHasSubtypes(true);
|
||||
}
|
||||
|
||||
public String getUnlocalizedName(ItemStack stack) {
|
||||
return super.getUnlocalizedName() + "." + EnumPanelType.values()[stack.getItemDamage()].getName();
|
||||
}
|
||||
}
|
|
@ -39,10 +39,8 @@ import net.minecraftforge.fml.relauncher.Side;
|
|||
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||
import net.minecraftforge.items.CapabilityItemHandler;
|
||||
import net.minecraftforge.items.IItemHandler;
|
||||
import reborncore.api.recipe.IRecipeCrafterProvider;
|
||||
import reborncore.api.tile.IUpgrade;
|
||||
import reborncore.common.powerSystem.TilePowerAcceptor;
|
||||
import reborncore.common.recipes.IUpgradeHandler;
|
||||
import reborncore.common.recipes.RecipeCrafter;
|
||||
import reborncore.common.tile.IMachineSlotProvider;
|
||||
import reborncore.common.tile.TileLegacyMachineBase;
|
||||
|
@ -123,20 +121,21 @@ public class ItemUpgrades extends ItemTR implements IUpgrade {
|
|||
@Nonnull
|
||||
TileLegacyMachineBase machineBase,
|
||||
@Nullable
|
||||
IUpgradeHandler handler,
|
||||
RecipeCrafter crafter,
|
||||
@Nonnull
|
||||
ItemStack stack) {
|
||||
|
||||
if (stack.getItemDamage() == 0) {
|
||||
handler.addSpeedMulti(0.25);
|
||||
handler.addPowerMulti(0.5);
|
||||
if (crafter != null) {
|
||||
crafter.addSpeedMulti(0.25);
|
||||
crafter.addPowerMulti(0.5);
|
||||
}
|
||||
|
||||
} else if (stack.getItemDamage() == 4) {
|
||||
EnumFacing dir = getFacing(stack);
|
||||
TileEntity tileEntity = machineBase.getWorld().getTileEntity(machineBase.getPos().offset(dir));
|
||||
if (tileEntity instanceof IInventory) {
|
||||
if (machineBase instanceof IRecipeCrafterProvider) {
|
||||
RecipeCrafter crafter = ((IRecipeCrafterProvider) machineBase).getRecipeCrafter();
|
||||
if (crafter != null) {
|
||||
for (Integer outSlot : crafter.outputSlots) {
|
||||
ItemStack outputStack = crafter.inventory.getStackInSlot(outSlot);
|
||||
if (!outputStack.isEmpty()) {
|
||||
|
@ -182,14 +181,16 @@ public class ItemUpgrades extends ItemTR implements IUpgrade {
|
|||
if (tileEntity != null && tileEntity.hasCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, dir.getOpposite())) {
|
||||
IItemHandler itemHandler = tileEntity.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, dir.getOpposite());
|
||||
for (int i = 0; i < itemHandler.getSlots(); i++) {
|
||||
ItemStack extractedStack = itemHandler.extractItem(i, 1, true);
|
||||
int amount = InventoryHelper.testInventoryInsertion(machineBase, extractedStack, null);
|
||||
if (amount > 0) {
|
||||
extractedStack = itemHandler.extractItem(i, 1, false);
|
||||
extractedStack.setCount(1);
|
||||
InventoryHelper.insertItemIntoInventory(machineBase, extractedStack);
|
||||
ItemStack stack1 = itemHandler.getStackInSlot(i);
|
||||
if (crafter == null || crafter.isStackValidInput(stack1)) {
|
||||
ItemStack extractedStack = itemHandler.extractItem(i, 1, true);
|
||||
int amount = InventoryHelper.testInventoryInsertion(machineBase, extractedStack, null);
|
||||
if (amount > 0) {
|
||||
extractedStack = itemHandler.extractItem(i, 1, false);
|
||||
extractedStack.setCount(1);
|
||||
InventoryHelper.insertItemIntoInventory(machineBase, extractedStack);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -51,6 +51,8 @@ public class PacketSetRecipe implements INetworkPacket<PacketSetRecipe> {
|
|||
} else {
|
||||
this.recipe = recipe.getRegistryName();
|
||||
}
|
||||
|
||||
System.out.println(this.recipe);
|
||||
this.custom = custom;
|
||||
}
|
||||
|
||||
|
@ -74,6 +76,7 @@ public class PacketSetRecipe implements INetworkPacket<PacketSetRecipe> {
|
|||
@Override
|
||||
public void processData(PacketSetRecipe message, MessageContext context) {
|
||||
TileEntity tileEntity = context.getServerHandler().player.world.getTileEntity(message.pos);
|
||||
;
|
||||
if (tileEntity instanceof TileAutoCraftingTable) {
|
||||
((TileAutoCraftingTable) tileEntity).setCurrentRecipe(message.recipe, message.custom);
|
||||
}
|
||||
|
|
|
@ -59,7 +59,7 @@ public class TileAutoCraftingTable extends TilePowerAcceptor implements IContain
|
|||
|
||||
ResourceLocation currentRecipe;
|
||||
|
||||
public Inventory inventory = new Inventory(11, "TileAutoCraftingTable", 64, this);
|
||||
public Inventory inventory = new Inventory(10, "TileAutoCraftingTable", 64, this);
|
||||
public int progress;
|
||||
public int maxProgress = 120;
|
||||
public int euTick = 10;
|
||||
|
@ -172,16 +172,8 @@ public class TileAutoCraftingTable extends TilePowerAcceptor implements IContain
|
|||
for (int i = 0; i < 9; i++) {
|
||||
ItemStack stack = inventory.getStackInSlot(i);
|
||||
int requiredSize = customRecipe ? 1 : 0;
|
||||
if(stack.getMaxStackSize() == 1){
|
||||
requiredSize = 0;
|
||||
}
|
||||
if (stacksInSlots[i] > requiredSize) {
|
||||
if (ingredient.apply(stack)) {
|
||||
if(stack.getItem().getContainerItem() != null){
|
||||
if(!hasRoomForExtraItem(stack.getItem().getContainerItem(stack))){
|
||||
continue;
|
||||
}
|
||||
}
|
||||
foundIngredient = true;
|
||||
stacksInSlots[i]--;
|
||||
break;
|
||||
|
@ -194,7 +186,7 @@ public class TileAutoCraftingTable extends TilePowerAcceptor implements IContain
|
|||
}
|
||||
}
|
||||
if (!missingOutput) {
|
||||
if (hasOutputSpace(recipe.getRecipeOutput(), 9)) {
|
||||
if (hasOutputSpace(recipe.getRecipeOutput())) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -203,17 +195,8 @@ public class TileAutoCraftingTable extends TilePowerAcceptor implements IContain
|
|||
return false;
|
||||
}
|
||||
|
||||
boolean hasRoomForExtraItem(ItemStack stack){
|
||||
ItemStack extraOutputSlot = getStackInSlot(10);
|
||||
if(extraOutputSlot.isEmpty()){
|
||||
return true;
|
||||
}
|
||||
return hasOutputSpace(stack, 10);
|
||||
}
|
||||
|
||||
|
||||
public boolean hasOutputSpace(ItemStack output, int slot) {
|
||||
ItemStack stack = inventory.getStackInSlot(slot);
|
||||
public boolean hasOutputSpace(ItemStack output) {
|
||||
ItemStack stack = inventory.getStackInSlot(9);
|
||||
if (stack.isEmpty()) {
|
||||
return true;
|
||||
}
|
||||
|
@ -238,14 +221,13 @@ public class TileAutoCraftingTable extends TilePowerAcceptor implements IContain
|
|||
//Looks for the best slot to take it from
|
||||
ItemStack bestSlot = inventory.getStackInSlot(i);
|
||||
if (ingredient.apply(bestSlot)) {
|
||||
handleContainerItem(bestSlot);
|
||||
bestSlot.shrink(1);
|
||||
} else {
|
||||
for (int j = 0; j < 9; j++) {
|
||||
ItemStack stack = inventory.getStackInSlot(j);
|
||||
if (ingredient.apply(stack)) {
|
||||
handleContainerItem(stack);
|
||||
stack.shrink(1); //TODO is this right? or do I need to use it as an actull crafting grid
|
||||
//TOOD check items to be retuned
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -265,21 +247,6 @@ public class TileAutoCraftingTable extends TilePowerAcceptor implements IContain
|
|||
return false;
|
||||
}
|
||||
|
||||
private void handleContainerItem(ItemStack stack){
|
||||
if(stack.getItem().hasContainerItem(stack)){
|
||||
ItemStack containerItem = stack.getItem().getContainerItem(stack);
|
||||
ItemStack extraOutputSlot = getStackInSlot(10);
|
||||
if(hasOutputSpace(containerItem, 10)){
|
||||
if(extraOutputSlot.isEmpty()){
|
||||
setInventorySlotContents(10, containerItem.copy());
|
||||
} else if(ItemUtils.isItemEqual(extraOutputSlot, containerItem, true, true) && extraOutputSlot.getMaxStackSize() < extraOutputSlot.getCount() + containerItem.getCount()) {
|
||||
extraOutputSlot.grow(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public boolean hasIngredient(Ingredient ingredient) {
|
||||
for (int i = 0; i < 9; i++) {
|
||||
ItemStack stack = inventory.getStackInSlot(i);
|
||||
|
@ -326,7 +293,7 @@ public class TileAutoCraftingTable extends TilePowerAcceptor implements IContain
|
|||
.slot(0, 28, 25).slot(1, 46, 25).slot(2, 64, 25)
|
||||
.slot(3, 28, 43).slot(4, 46, 43).slot(5, 64, 43)
|
||||
.slot(6, 28, 61).slot(7, 46, 61).slot(8, 64, 61)
|
||||
.outputSlot(9, 145, 42).outputSlot(10, 145, 70).syncEnergyValue()
|
||||
.outputSlot(9, 145, 42).syncEnergyValue()
|
||||
.syncIntegerValue(this::getProgress, this::setProgress)
|
||||
.syncIntegerValue(this::getMaxProgress, this::setMaxProgress)
|
||||
.addInventory().create(this);
|
||||
|
@ -450,11 +417,11 @@ public class TileAutoCraftingTable extends TilePowerAcceptor implements IContain
|
|||
|
||||
@Override
|
||||
public int[] getSlotsForFace(EnumFacing side) {
|
||||
return new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
|
||||
return new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canExtractItem(int index, ItemStack stack, EnumFacing direction) {
|
||||
return index == 9 || index == 10;
|
||||
return index == 9;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -31,7 +31,7 @@ import reborncore.api.IToolDrop;
|
|||
import reborncore.common.powerSystem.TilePowerAcceptor;
|
||||
import reborncore.common.registration.RebornRegistry;
|
||||
import reborncore.common.registration.impl.ConfigRegistry;
|
||||
import techreborn.blocks.generator.BlockSolarPanel;
|
||||
import techreborn.blocks.generator.solarpanel.BlockSolarPanel;
|
||||
import techreborn.init.ModBlocks;
|
||||
import techreborn.lib.ModInfo;
|
||||
|
||||
|
@ -75,8 +75,6 @@ public class TileSolarPanel extends TilePowerAcceptor implements IToolDrop {
|
|||
this.powerToAdd = 0;
|
||||
}
|
||||
|
||||
this.world.setBlockState(this.getPos(),
|
||||
this.world.getBlockState(this.getPos()).withProperty(BlockSolarPanel.ACTIVE, this.isSunOut()));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -30,8 +30,8 @@ import net.minecraft.inventory.IInventory;
|
|||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.item.crafting.FurnaceRecipes;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
import reborncore.api.IToolDrop;
|
||||
import reborncore.api.tile.IInventoryProvider;
|
||||
import reborncore.api.IToolDrop;
|
||||
import reborncore.common.blocks.BlockMachineBase;
|
||||
import reborncore.common.powerSystem.TilePowerAcceptor;
|
||||
import reborncore.common.tile.IMachineSlotProvider;
|
||||
|
@ -74,9 +74,9 @@ public class TileElectricFurnace extends TilePowerAcceptor
|
|||
|
||||
this.progress++;
|
||||
if (this.progress % 10 == 0) {
|
||||
this.useEnergy(getEuPerTick(this.cost));
|
||||
this.useEnergy(this.cost);
|
||||
}
|
||||
if (this.progress >= Math.max((int) (fuelScale * (1.0 - getSpeedMultiplier())), 1)) {
|
||||
if (this.progress >= this.fuelScale) {
|
||||
this.progress = 0;
|
||||
this.cookItems();
|
||||
updateInventory = true;
|
||||
|
@ -127,7 +127,7 @@ public class TileElectricFurnace extends TilePowerAcceptor
|
|||
}
|
||||
|
||||
public boolean isBurning() {
|
||||
return this.getEnergy() > getEuPerTick(this.cost);
|
||||
return this.getEnergy() > this.cost;
|
||||
}
|
||||
|
||||
public ItemStack getResultFor(final ItemStack stack) {
|
||||
|
@ -245,6 +245,6 @@ public class TileElectricFurnace extends TilePowerAcceptor
|
|||
|
||||
@Override
|
||||
public boolean canBeUpgraded() {
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,34 +1,60 @@
|
|||
{
|
||||
"forge_marker": 1,
|
||||
"defaults": {
|
||||
"transform": "forge:default-block",
|
||||
"model": "cube_bottom_top",
|
||||
"textures": {
|
||||
"particle": "techreborn:blocks/machines/generators/solar_panel_side_off",
|
||||
"top": "techreborn:blocks/machines/generators/solar_panel_top",
|
||||
"down": "techreborn:blocks/machines/generators/generator_bottom"
|
||||
}
|
||||
},
|
||||
"variants": {
|
||||
"inventory": {
|
||||
"transform": "forge:default-block",
|
||||
"model": "cube_bottom_top",
|
||||
"textures": {
|
||||
"side": "techreborn:blocks/machines/generators/solar_panel_side_off"
|
||||
}
|
||||
},
|
||||
"active": {
|
||||
"true": {
|
||||
"textures": {
|
||||
"side": "techreborn:blocks/machines/generators/solar_panel_side_on"
|
||||
}
|
||||
},
|
||||
"false": {
|
||||
"textures": {
|
||||
"side": "techreborn:blocks/machines/generators/solar_panel_side_off"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
"forge_marker": 1,
|
||||
"defaults": {
|
||||
"textures": {},
|
||||
"transform": "forge:default-block",
|
||||
"model": "cube_bottom_top"
|
||||
},
|
||||
"variants": {
|
||||
"inventory": {
|
||||
"transform": "forge:default-block",
|
||||
"model": "cube_bottom_top",
|
||||
"textures": {
|
||||
"side": "techreborn:blocks/machines/generators/solar_panel_side_off"
|
||||
}
|
||||
},
|
||||
"type": {
|
||||
"basic": {
|
||||
"textures": {
|
||||
"particle": "techreborn:blocks/machines/generators/solar_panel_side_off",
|
||||
"top": "techreborn:blocks/machines/generators/solar_panel_top",
|
||||
"down": "techreborn:blocks/machines/generators/generator_bottom",
|
||||
"side": "techreborn:blocks/machines/generators/solar_panel_side_off"
|
||||
}
|
||||
},
|
||||
"hybrid": {
|
||||
"textures": {
|
||||
"particle": "techreborn:blocks/machines/generators/solar_panel_side_off",
|
||||
"top": "techreborn:blocks/machines/generators/solar_panel_top",
|
||||
"down": "techreborn:blocks/machines/generators/generator_bottom",
|
||||
"side": "techreborn:blocks/machines/generators/solar_panel_side_off"
|
||||
}
|
||||
},
|
||||
"advanced": {
|
||||
"textures": {
|
||||
"particle": "techreborn:blocks/machines/generators/solar_panel_side_off",
|
||||
"top": "techreborn:blocks/machines/generators/solar_panel_top",
|
||||
"down": "techreborn:blocks/machines/generators/generator_bottom",
|
||||
"side": "techreborn:blocks/machines/generators/solar_panel_side_off"
|
||||
}
|
||||
},
|
||||
"ultimate": {
|
||||
"textures": {
|
||||
"particle": "techreborn:blocks/machines/generators/solar_panel_side_off",
|
||||
"top": "techreborn:blocks/machines/generators/solar_panel_top",
|
||||
"down": "techreborn:blocks/machines/generators/generator_bottom",
|
||||
"side": "techreborn:blocks/machines/generators/solar_panel_side_off"
|
||||
}
|
||||
},
|
||||
"quantum": {
|
||||
"textures": {
|
||||
"particle": "techreborn:blocks/machines/generators/solar_panel_side_off",
|
||||
"top": "techreborn:blocks/machines/generators/solar_panel_top",
|
||||
"down": "techreborn:blocks/machines/generators/generator_bottom",
|
||||
"side": "techreborn:blocks/machines/generators/solar_panel_side_off"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -59,7 +59,12 @@ tile.techreborn:machine_frame.advanced.name=Advanced Machine Frame
|
|||
tile.techreborn:machine_frame.basic.name=Basic Machine Frame
|
||||
tile.techreborn:ore2.copper.name=Copper Ore
|
||||
tile.techreborn:ore2.tin.name=Tin Ore
|
||||
tile.techreborn:solar_panel.name=Solar Panel
|
||||
tile.techreborn:solar_panel.basic.name=Basic Solar Panel
|
||||
tile.techreborn:solar_panel.hybrid.name=Hybrid Solar Panel
|
||||
tile.techreborn:solar_panel.advanced.name=Advanced Solar Panel
|
||||
tile.techreborn:solar_panel.ultimate.name=Ultimate Solar Panel
|
||||
tile.techreborn:solar_panel.quantum.name=Quantum Solar Panel
|
||||
|
||||
tile.techreborn:creative_solar_panel.name=Creative Panel
|
||||
tile.techreborn:water_mill.name=Water Mill
|
||||
tile.techreborn:wind_mill.name=Wind Mill
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 674 B |
Loading…
Add table
Reference in a new issue