1.12: ModBlocks class renamed to ModContent. Mineal Smelter released. Window sub models stripped (issue #19). Block opacity of full blocks fixed (issue #50). Factory Dropper continuous mode added (issue #51). Experimental features added.
|
@ -1,10 +1,11 @@
|
||||||
{
|
{
|
||||||
"homepage": "https://www.curseforge.com/minecraft/mc-mods/engineers-decor/",
|
"homepage": "https://www.curseforge.com/minecraft/mc-mods/engineers-decor/",
|
||||||
"1.12.2": {
|
"1.12.2": {
|
||||||
|
"1.0.12-b1": "[A] Mineal Smelter non-experimental now.\n[M] Window submodels stripped (reopened issue #19, thx overchoice).\n[M] Opaque full block light opacity fixed (issue #50, thx Illomiurge).\n[M] Factory Dropper: Added pulse/continuous mode in GUI (issue #51, thx Aristine for the CR).",
|
||||||
"1.0.11": "[R] Release based on v1.0.11-b3. Release-to-release changes: * Steel floor grating improvments. * Minor model box fixes. * Standalone recipes added. * Language updates.",
|
"1.0.11": "[R] Release based on v1.0.11-b3. Release-to-release changes: * Steel floor grating improvments. * Minor model box fixes. * Standalone recipes added. * Language updates.",
|
||||||
"1.0.11-b3": "[M] Added missing standalone recipes for pipe valves, passive fluid accumulator, and waste incinerator.",
|
"1.0.11-b3": "[M] Added missing standalone recipes for pipe valves, passive fluid accumulator, and waste incinerator.",
|
||||||
"1.0.11-b2": "[F] Fixed Floor Grating issue, which could have caused a crash.\n[M] Lang update ru-ru (Shellyoung, PR #47).",
|
"1.0.11-b2": "[F] Fixed Floor Grating issue, which could have caused a crash.\n[M] Lang update ru-ru (Shellyoung, PR #47).",
|
||||||
"1.0.11-b1": "[M] Lang update ru-ru (Shellyoung, PR #45).\n[F] Fixed bounding box of the Steel Table.\n[M] Steel Floor Frating: Items fall through.",
|
"1.0.11-b1": "[M] Lang update ru-ru (Shellyoung, PR #45).\n[F] Fixed bounding box of the Steel Table.\n[M] Steel Floor Grating: Items fall through.",
|
||||||
"1.0.10": "[R] Release based on v1.0.10-b2. Release-to-release changes: * Steel table added. * Steel floor grating added. * Treated wood side table added. * Exit Sign added. * Recipe fixes.",
|
"1.0.10": "[R] Release based on v1.0.10-b2. Release-to-release changes: * Steel table added. * Steel floor grating added. * Treated wood side table added. * Exit Sign added. * Recipe fixes.",
|
||||||
"1.0.10-b2": "[A] Steel table added.\n[A] Steel floor grating added.",
|
"1.0.10-b2": "[A] Steel table added.\n[A] Steel floor grating added.",
|
||||||
"1.0.10-b1": "[A] Treated wood side table added.\n[F] Fixed recipe collision of Metal Rung Ladder (issue #37, thx ProsperCraft for reporting).\n[A] Added Exit Sign (texture design by J. Carver).",
|
"1.0.10-b1": "[A] Treated wood side table added.\n[F] Fixed recipe collision of Metal Rung Ladder (issue #37, thx ProsperCraft for reporting).\n[A] Added Exit Sign (texture design by J. Carver).",
|
||||||
|
@ -55,6 +56,6 @@
|
||||||
},
|
},
|
||||||
"promos": {
|
"promos": {
|
||||||
"1.12.2-recommended": "1.0.11",
|
"1.12.2-recommended": "1.0.11",
|
||||||
"1.12.2-latest": "1.0.11"
|
"1.12.2-latest": "1.0.12-b1"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -10,7 +10,11 @@ Mod sources for Minecraft version 1.12.2.
|
||||||
----
|
----
|
||||||
## Version history
|
## Version history
|
||||||
|
|
||||||
~ v1.0.12-b1 [M] Window submodels stripped (issue #19).
|
- v1.0.12-b1 [A] Mineal Smelter non-experimental now.
|
||||||
|
[M] Window submodels stripped (reopened issue #19, thx overchoice).
|
||||||
|
[M] Opaque full block light opacity fixed (issue #50, thx Illomiurge).
|
||||||
|
[M] Factory Dropper: Added pulse/continuous mode in GUI (issue #51,
|
||||||
|
thx Aristine for the CR).
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
- v1.0.11 [R] Release based on v1.0.11-b3. Release-to-release changes:
|
- v1.0.11 [R] Release based on v1.0.11-b3. Release-to-release changes:
|
||||||
|
@ -28,7 +32,7 @@ Mod sources for Minecraft version 1.12.2.
|
||||||
|
|
||||||
- v1.0.11-b1 [M] Lang update ru-ru (Shellyoung, PR #45).
|
- v1.0.11-b1 [M] Lang update ru-ru (Shellyoung, PR #45).
|
||||||
[F] Fixed bounding box of the Steel Table.
|
[F] Fixed bounding box of the Steel Table.
|
||||||
[M] Steel Floor Frating: Items fall through.
|
[M] Steel Floor Grating: Items fall through.
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
- v1.0.10 [R] Release based on v1.0.10-b2. Release-to-release changes:
|
- v1.0.10 [R] Release based on v1.0.10-b2. Release-to-release changes:
|
||||||
|
|
|
@ -10,11 +10,11 @@
|
||||||
* Note: Straight forward definition of different blocks/entities
|
* Note: Straight forward definition of different blocks/entities
|
||||||
* to make recipes, models and texture definitions easier.
|
* to make recipes, models and texture definitions easier.
|
||||||
*/
|
*/
|
||||||
package wile.engineersdecor.blocks;
|
package wile.engineersdecor;
|
||||||
|
|
||||||
import wile.engineersdecor.ModEngineersDecor;
|
import wile.engineersdecor.detail.*;
|
||||||
import wile.engineersdecor.detail.ModAuxiliaries;
|
import wile.engineersdecor.blocks.*;
|
||||||
import wile.engineersdecor.detail.ModConfig;
|
import wile.engineersdecor.items.*;
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.block.SoundType;
|
import net.minecraft.block.SoundType;
|
||||||
import net.minecraft.block.material.Material;
|
import net.minecraft.block.material.Material;
|
||||||
|
@ -35,7 +35,7 @@ import java.util.Collections;
|
||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
public class ModBlocks
|
public class ModContent
|
||||||
{
|
{
|
||||||
//--------------------------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------------------------
|
||||||
//-- Blocks
|
//-- Blocks
|
||||||
|
@ -73,6 +73,8 @@ public class ModBlocks
|
||||||
public static final BlockDecorGlassBlock PANZERGLASS_BLOCK = new BlockDecorGlassBlock("panzerglass_block", 0, Material.GLASS, 1f, 2000f, SoundType.GLASS);
|
public static final BlockDecorGlassBlock PANZERGLASS_BLOCK = new BlockDecorGlassBlock("panzerglass_block", 0, Material.GLASS, 1f, 2000f, SoundType.GLASS);
|
||||||
public static final BlockDecorSlab PANZERGLASS_SLAB = new BlockDecorSlab("panzerglass_slab", BlockDecor.CFG_TRANSLUCENT, Material.GLASS, 1f, 2000f, SoundType.GLASS);
|
public static final BlockDecorSlab PANZERGLASS_SLAB = new BlockDecorSlab("panzerglass_slab", BlockDecor.CFG_TRANSLUCENT, Material.GLASS, 1f, 2000f, SoundType.GLASS);
|
||||||
|
|
||||||
|
public static final BlockDecorFull TREATED_WOOD_FLOOR = new BlockDecorFull("treated_wood_floor", 0, Material.WOOD, 0.5f, 10f, SoundType.WOOD);
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
public static final BlockDecorCraftingTable TREATED_WOOD_CRAFTING_TABLE = new BlockDecorCraftingTable(
|
public static final BlockDecorCraftingTable TREATED_WOOD_CRAFTING_TABLE = new BlockDecorCraftingTable(
|
||||||
|
@ -85,7 +87,7 @@ public class ModBlocks
|
||||||
public static final BlockDecorFurnace SMALL_LAB_FURNACE = new BlockDecorFurnace(
|
public static final BlockDecorFurnace SMALL_LAB_FURNACE = new BlockDecorFurnace(
|
||||||
"small_lab_furnace",
|
"small_lab_furnace",
|
||||||
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_HORIZIONTAL|BlockDecor.CFG_LOOK_PLACEMENT|BlockDecor.CFG_OPPOSITE_PLACEMENT|
|
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_HORIZIONTAL|BlockDecor.CFG_LOOK_PLACEMENT|BlockDecor.CFG_OPPOSITE_PLACEMENT|
|
||||||
BlockDecor.CFG_ELECTRICAL,
|
BlockDecor.CFG_ELECTRICAL,
|
||||||
Material.IRON, 0.5f, 15f, SoundType.METAL,
|
Material.IRON, 0.5f, 15f, SoundType.METAL,
|
||||||
ModAuxiliaries.getPixeledAABB(1,0,1, 15,15,16)
|
ModAuxiliaries.getPixeledAABB(1,0,1, 15,15,16)
|
||||||
);
|
);
|
||||||
|
@ -118,12 +120,26 @@ public class ModBlocks
|
||||||
ModAuxiliaries.getPixeledAABB(1.1,0,1.1, 14.9,16,14.9)
|
ModAuxiliaries.getPixeledAABB(1.1,0,1.1, 14.9,16,14.9)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
public static final BlockDecorSolarPanel SMALL_SOLAR_PANEL = new BlockDecorSolarPanel(
|
||||||
|
"small_solar_panel",
|
||||||
|
BlockDecor.CFG_LOOK_PLACEMENT,
|
||||||
|
Material.IRON, 1f, 15f, SoundType.METAL,
|
||||||
|
ModAuxiliaries.getPixeledAABB(0,0,0, 16,11.5,16)
|
||||||
|
);
|
||||||
|
|
||||||
|
public static final BlockDecorTreeCutter SMALL_TREE_CUTTER = new BlockDecorTreeCutter(
|
||||||
|
"small_tree_cutter",
|
||||||
|
BlockDecor.CFG_HORIZIONTAL|BlockDecor.CFG_LOOK_PLACEMENT|BlockDecor.CFG_FLIP_PLACEMENT_SHIFTCLICK,
|
||||||
|
Material.IRON, 1f, 15f, SoundType.METAL,
|
||||||
|
ModAuxiliaries.getPixeledAABB(0,0,0, 16,8,16)
|
||||||
|
);
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
public static final BlockDecorPipeValve STRAIGHT_CHECK_VALVE = new BlockDecorPipeValve(
|
public static final BlockDecorPipeValve STRAIGHT_CHECK_VALVE = new BlockDecorPipeValve(
|
||||||
"straight_pipe_valve",
|
"straight_pipe_valve",
|
||||||
BlockDecor.CFG_FACING_PLACEMENT|BlockDecor.CFG_OPPOSITE_PLACEMENT|BlockDecor.CFG_FLIP_PLACEMENT_SHIFTCLICK|
|
BlockDecor.CFG_FACING_PLACEMENT|BlockDecor.CFG_OPPOSITE_PLACEMENT|BlockDecor.CFG_FLIP_PLACEMENT_SHIFTCLICK|
|
||||||
BlockDecor.CFG_CUTOUT,
|
BlockDecor.CFG_CUTOUT,
|
||||||
Material.IRON, 0.7f, 15f, SoundType.METAL,
|
Material.IRON, 0.7f, 15f, SoundType.METAL,
|
||||||
ModAuxiliaries.getPixeledAABB(4,4,0, 12,12,16)
|
ModAuxiliaries.getPixeledAABB(4,4,0, 12,12,16)
|
||||||
);
|
);
|
||||||
|
@ -131,7 +147,7 @@ public class ModBlocks
|
||||||
public static final BlockDecorPipeValve STRAIGHT_REDSTONE_VALVE = new BlockDecorPipeValve(
|
public static final BlockDecorPipeValve STRAIGHT_REDSTONE_VALVE = new BlockDecorPipeValve(
|
||||||
"straight_pipe_valve_redstone",
|
"straight_pipe_valve_redstone",
|
||||||
BlockDecor.CFG_FACING_PLACEMENT|BlockDecor.CFG_OPPOSITE_PLACEMENT|BlockDecor.CFG_FLIP_PLACEMENT_SHIFTCLICK|
|
BlockDecor.CFG_FACING_PLACEMENT|BlockDecor.CFG_OPPOSITE_PLACEMENT|BlockDecor.CFG_FLIP_PLACEMENT_SHIFTCLICK|
|
||||||
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_REDSTONE_CONTROLLED,
|
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_REDSTONE_CONTROLLED,
|
||||||
Material.IRON, 0.7f, 15f, SoundType.METAL,
|
Material.IRON, 0.7f, 15f, SoundType.METAL,
|
||||||
ModAuxiliaries.getPixeledAABB(4,4,0, 12,12,16)
|
ModAuxiliaries.getPixeledAABB(4,4,0, 12,12,16)
|
||||||
);
|
);
|
||||||
|
@ -139,7 +155,7 @@ public class ModBlocks
|
||||||
public static final BlockDecorPipeValve STRAIGHT_REDSTONE_ANALOG_VALVE = new BlockDecorPipeValve(
|
public static final BlockDecorPipeValve STRAIGHT_REDSTONE_ANALOG_VALVE = new BlockDecorPipeValve(
|
||||||
"straight_pipe_valve_redstone_analog",
|
"straight_pipe_valve_redstone_analog",
|
||||||
BlockDecor.CFG_FACING_PLACEMENT|BlockDecor.CFG_OPPOSITE_PLACEMENT|BlockDecor.CFG_FLIP_PLACEMENT_SHIFTCLICK|
|
BlockDecor.CFG_FACING_PLACEMENT|BlockDecor.CFG_OPPOSITE_PLACEMENT|BlockDecor.CFG_FLIP_PLACEMENT_SHIFTCLICK|
|
||||||
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_REDSTONE_CONTROLLED|BlockDecor.CFG_ANALOG,
|
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_REDSTONE_CONTROLLED|BlockDecor.CFG_ANALOG,
|
||||||
Material.IRON, 0.7f, 15f, SoundType.METAL,
|
Material.IRON, 0.7f, 15f, SoundType.METAL,
|
||||||
ModAuxiliaries.getPixeledAABB(4,4,0, 12,12,16)
|
ModAuxiliaries.getPixeledAABB(4,4,0, 12,12,16)
|
||||||
);
|
);
|
||||||
|
@ -147,7 +163,7 @@ public class ModBlocks
|
||||||
public static final BlockDecorPassiveFluidAccumulator PASSIVE_FLUID_ACCUMULATOR = new BlockDecorPassiveFluidAccumulator(
|
public static final BlockDecorPassiveFluidAccumulator PASSIVE_FLUID_ACCUMULATOR = new BlockDecorPassiveFluidAccumulator(
|
||||||
"passive_fluid_accumulator",
|
"passive_fluid_accumulator",
|
||||||
BlockDecor.CFG_FACING_PLACEMENT|BlockDecor.CFG_OPPOSITE_PLACEMENT|BlockDecor.CFG_FLIP_PLACEMENT_SHIFTCLICK|
|
BlockDecor.CFG_FACING_PLACEMENT|BlockDecor.CFG_OPPOSITE_PLACEMENT|BlockDecor.CFG_FLIP_PLACEMENT_SHIFTCLICK|
|
||||||
BlockDecor.CFG_CUTOUT,
|
BlockDecor.CFG_CUTOUT,
|
||||||
Material.IRON, 0.7f, 15f, SoundType.METAL,
|
Material.IRON, 0.7f, 15f, SoundType.METAL,
|
||||||
ModAuxiliaries.getPixeledAABB(0,0,0, 16,16,16)
|
ModAuxiliaries.getPixeledAABB(0,0,0, 16,16,16)
|
||||||
);
|
);
|
||||||
|
@ -408,8 +424,16 @@ public class ModBlocks
|
||||||
BlockDecorMineralSmelter.BTileEntity.class, "te_small_mineral_smelter"
|
BlockDecorMineralSmelter.BTileEntity.class, "te_small_mineral_smelter"
|
||||||
);
|
);
|
||||||
|
|
||||||
|
private static final TileEntityRegistrationData SMALL_SOLAR_PANEL_TEI = new TileEntityRegistrationData(
|
||||||
|
BlockDecorSolarPanel.BTileEntity.class, "te_small_solar_panel"
|
||||||
|
);
|
||||||
|
|
||||||
|
private static final TileEntityRegistrationData SMALL_TREE_CUTTER_TEI = new TileEntityRegistrationData(
|
||||||
|
BlockDecorTreeCutter.BTileEntity.class, "te_small_tree_cutter"
|
||||||
|
);
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------------------------
|
||||||
//-- Registration list
|
//-- Block registration list
|
||||||
//--------------------------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
private static final Object content[] = {
|
private static final Object content[] = {
|
||||||
|
@ -420,6 +444,7 @@ public class ModBlocks
|
||||||
SMALL_WASTE_INCINERATOR, WASTE_INCINERATOR_TEI,
|
SMALL_WASTE_INCINERATOR, WASTE_INCINERATOR_TEI,
|
||||||
STRAIGHT_CHECK_VALVE, STRAIGHT_REDSTONE_VALVE, STRAIGHT_REDSTONE_ANALOG_VALVE, STRAIGHT_PIPE_VALVE_TEI,
|
STRAIGHT_CHECK_VALVE, STRAIGHT_REDSTONE_VALVE, STRAIGHT_REDSTONE_ANALOG_VALVE, STRAIGHT_PIPE_VALVE_TEI,
|
||||||
PASSIVE_FLUID_ACCUMULATOR, PASSIVE_FLUID_ACCUMULATOR_TEI,
|
PASSIVE_FLUID_ACCUMULATOR, PASSIVE_FLUID_ACCUMULATOR_TEI,
|
||||||
|
SMALL_MINERAL_SMELTER, SMALL_MINERAL_SMELTER_TEI,
|
||||||
CLINKER_BRICK_BLOCK,
|
CLINKER_BRICK_BLOCK,
|
||||||
CLINKER_BRICK_SLAB,
|
CLINKER_BRICK_SLAB,
|
||||||
CLINKER_BRICK_STAIRS,
|
CLINKER_BRICK_STAIRS,
|
||||||
|
@ -467,11 +492,47 @@ public class ModBlocks
|
||||||
};
|
};
|
||||||
|
|
||||||
private static final Object dev_content[] = {
|
private static final Object dev_content[] = {
|
||||||
SMALL_MINERAL_SMELTER, SMALL_MINERAL_SMELTER_TEI,
|
|
||||||
PANZERGLASS_SLAB, // check if another class is needed due to is_side_visible
|
|
||||||
SIGN_MINDSTEP,
|
SIGN_MINDSTEP,
|
||||||
|
PANZERGLASS_SLAB, // @todo: check if another class is needed due to is_side_visible
|
||||||
|
SMALL_SOLAR_PANEL,SMALL_SOLAR_PANEL_TEI, // @todo: check power tuning <= Peltier generator
|
||||||
|
TREATED_WOOD_FLOOR, // @todo: check if textures need improvement
|
||||||
|
SMALL_TREE_CUTTER,SMALL_TREE_CUTTER_TEI, // @todo: test
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------------------------
|
||||||
|
//-- Items
|
||||||
|
//--------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
private static final Item[] modItems = {
|
||||||
|
};
|
||||||
|
|
||||||
|
private static final ArrayList<Item> registeredItems = new ArrayList<>();
|
||||||
|
|
||||||
|
@Nonnull
|
||||||
|
public static List<Item> getRegisteredItems()
|
||||||
|
{ return Collections.unmodifiableList(registeredItems); }
|
||||||
|
|
||||||
|
public static final void registerItems(RegistryEvent.Register<Item> event)
|
||||||
|
{
|
||||||
|
// Config based registry selection
|
||||||
|
int num_registrations_skipped = 0;
|
||||||
|
ArrayList<Item> allItems = new ArrayList<>();
|
||||||
|
Collections.addAll(allItems, modItems);
|
||||||
|
final boolean woor = ModConfig.isWithoutOptOutRegistration();
|
||||||
|
for(Item e:allItems) {
|
||||||
|
if((!woor) || (!ModConfig.isOptedOut(e))) {
|
||||||
|
registeredItems.add(e);
|
||||||
|
} else {
|
||||||
|
++num_registrations_skipped;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for(Item e:registeredItems) event.getRegistry().register(e);
|
||||||
|
ModEngineersDecor.logger.info("Registered " + Integer.toString(registeredItems.size()) + " items.");
|
||||||
|
if(num_registrations_skipped > 0) {
|
||||||
|
ModEngineersDecor.logger.info("Skipped registration of " + num_registrations_skipped + " items.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------------------------
|
||||||
//-- Init
|
//-- Init
|
||||||
//--------------------------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -531,6 +592,9 @@ public class ModBlocks
|
||||||
for(Block e:registeredBlocks) {
|
for(Block e:registeredBlocks) {
|
||||||
ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(e), 0, new ModelResourceLocation(e.getRegistryName(), "inventory"));
|
ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(e), 0, new ModelResourceLocation(e.getRegistryName(), "inventory"));
|
||||||
}
|
}
|
||||||
|
for(Item e:registeredItems) {
|
||||||
|
if(e instanceof ItemDecor) ((ItemDecor)e).initModel();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Invoked from CommonProxy.registerItems()
|
// Invoked from CommonProxy.registerItems()
|
|
@ -10,7 +10,6 @@ package wile.engineersdecor;
|
||||||
|
|
||||||
import wile.engineersdecor.detail.*;
|
import wile.engineersdecor.detail.*;
|
||||||
import wile.engineersdecor.blocks.*;
|
import wile.engineersdecor.blocks.*;
|
||||||
import wile.engineersdecor.items.*;
|
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.client.multiplayer.WorldClient;
|
import net.minecraft.client.multiplayer.WorldClient;
|
||||||
|
@ -124,11 +123,11 @@ public class ModEngineersDecor
|
||||||
{
|
{
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
public static void registerBlocks(final RegistryEvent.Register<Block> event)
|
public static void registerBlocks(final RegistryEvent.Register<Block> event)
|
||||||
{ ModBlocks.registerBlocks(event); }
|
{ ModContent.registerBlocks(event); }
|
||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
public static void registerItems(final RegistryEvent.Register<Item> event)
|
public static void registerItems(final RegistryEvent.Register<Item> event)
|
||||||
{ ModBlocks.registerItemBlocks(event); ModItems.registerItems(event); }
|
{ ModContent.registerItemBlocks(event); ModContent.registerItems(event); }
|
||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
public static void registerRecipes(RegistryEvent.Register<IRecipe> event)
|
public static void registerRecipes(RegistryEvent.Register<IRecipe> event)
|
||||||
|
@ -137,14 +136,14 @@ public class ModEngineersDecor
|
||||||
@SideOnly(Side.CLIENT)
|
@SideOnly(Side.CLIENT)
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
public static void registerModels(final ModelRegistryEvent event)
|
public static void registerModels(final ModelRegistryEvent event)
|
||||||
{ ModBlocks.initModels(); ModItems.initModels(); }
|
{ ModContent.initModels(); }
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final CreativeTabs CREATIVE_TAB_ENGINEERSDECOR = (new CreativeTabs("tabengineersdecor") {
|
public static final CreativeTabs CREATIVE_TAB_ENGINEERSDECOR = (new CreativeTabs("tabengineersdecor") {
|
||||||
@Override
|
@Override
|
||||||
@SideOnly(Side.CLIENT)
|
@SideOnly(Side.CLIENT)
|
||||||
public @Nonnull ItemStack createIcon()
|
public @Nonnull ItemStack createIcon()
|
||||||
{ return new ItemStack(ModBlocks.SIGN_MODLOGO); }
|
{ return new ItemStack(ModContent.SIGN_MODLOGO); }
|
||||||
});
|
});
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
|
@ -37,6 +37,7 @@ import javax.annotation.Nonnull;
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
public class BlockDecor extends Block
|
public class BlockDecor extends Block
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -77,9 +78,8 @@ public class BlockDecor extends Block
|
||||||
setHardness((hardness > 0) ? hardness : 5.0f);
|
setHardness((hardness > 0) ? hardness : 5.0f);
|
||||||
setResistance((resistance > 0) ? resistance : 10.0f);
|
setResistance((resistance > 0) ? resistance : 10.0f);
|
||||||
setSoundType((sound==null) ? SoundType.STONE : sound);
|
setSoundType((sound==null) ? SoundType.STONE : sound);
|
||||||
setLightOpacity(0);
|
if(((config & (CFG_CUTOUT|CFG_TRANSLUCENT))!=0)) setLightOpacity(0);
|
||||||
// @todo double check that instance variable
|
if((config & CFG_TRANSLUCENT) != 0) this.translucent = true;
|
||||||
// not sure here ... if((config & CFG_TRANSLUCENT) != 0) this.translucent = true;
|
|
||||||
this.config = config;
|
this.config = config;
|
||||||
this.aabb = boundingboxes;
|
this.aabb = boundingboxes;
|
||||||
}
|
}
|
||||||
|
@ -192,5 +192,4 @@ public class BlockDecor extends Block
|
||||||
@SuppressWarnings("deprecation")
|
@SuppressWarnings("deprecation")
|
||||||
public void neighborChanged(IBlockState state, World world, BlockPos pos, Block blockIn, BlockPos fromPos)
|
public void neighborChanged(IBlockState state, World world, BlockPos pos, Block blockIn, BlockPos fromPos)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -248,7 +248,7 @@ public class BlockDecorDropper extends BlockDecorDirected
|
||||||
Networking.PacketTileNotify.sendToServer(te, nbt);
|
Networking.PacketTileNotify.sendToServer(te, nbt);
|
||||||
} else if(isPointInRegion(162, 66, 7, 9, mouseX, mouseY)) {
|
} else if(isPointInRegion(162, 66, 7, 9, mouseX, mouseY)) {
|
||||||
NBTTagCompound nbt = new NBTTagCompound();
|
NBTTagCompound nbt = new NBTTagCompound();
|
||||||
nbt.setInteger("manual_trigger", 1);
|
nbt.setInteger("drop_logic", container.fields_[5] ^ BTileEntity.DROPLOGIC_CONTINUOUS);
|
||||||
Networking.PacketTileNotify.sendToServer(te, nbt);
|
Networking.PacketTileNotify.sendToServer(te, nbt);
|
||||||
} else if(isPointInRegion(132, 66, 9, 9, mouseX, mouseY)) {
|
} else if(isPointInRegion(132, 66, 9, 9, mouseX, mouseY)) {
|
||||||
NBTTagCompound nbt = new NBTTagCompound();
|
NBTTagCompound nbt = new NBTTagCompound();
|
||||||
|
@ -322,8 +322,10 @@ public class BlockDecorDropper extends BlockDecorDirected
|
||||||
{
|
{
|
||||||
int filter_gate_offset = ((container.fields_[5] & BTileEntity.DROPLOGIC_FILTER_ANDGATE) != 0) ? 11 : 0;
|
int filter_gate_offset = ((container.fields_[5] & BTileEntity.DROPLOGIC_FILTER_ANDGATE) != 0) ? 11 : 0;
|
||||||
int extern_gate_offset = ((container.fields_[5] & BTileEntity.DROPLOGIC_EXTERN_ANDGATE) != 0) ? 11 : 0;
|
int extern_gate_offset = ((container.fields_[5] & BTileEntity.DROPLOGIC_EXTERN_ANDGATE) != 0) ? 11 : 0;
|
||||||
|
int pulse_mode_offset = ((container.fields_[5] & BTileEntity.DROPLOGIC_CONTINUOUS ) != 0) ? 10 : 0;
|
||||||
drawTexturedModalRect(x0+132, y0+66, 179+filter_gate_offset, 66, 9, 9);
|
drawTexturedModalRect(x0+132, y0+66, 179+filter_gate_offset, 66, 9, 9);
|
||||||
drawTexturedModalRect(x0+148, y0+66, 179+extern_gate_offset, 66, 9, 9);
|
drawTexturedModalRect(x0+148, y0+66, 179+extern_gate_offset, 66, 9, 9);
|
||||||
|
drawTexturedModalRect(x0+162, y0+66, 200+pulse_mode_offset, 66, 9, 9);
|
||||||
}
|
}
|
||||||
// drop timer running indicator
|
// drop timer running indicator
|
||||||
{
|
{
|
||||||
|
@ -456,10 +458,11 @@ public class BlockDecorDropper extends BlockDecorDirected
|
||||||
public static final int MAX_DROP_COUNT = 32;
|
public static final int MAX_DROP_COUNT = 32;
|
||||||
public static final int DROP_PERIOD_OFFSET = 10;
|
public static final int DROP_PERIOD_OFFSET = 10;
|
||||||
///
|
///
|
||||||
public static final int DROPLOGIC_FILTER_ANDGATE = 0x1;
|
public static final int DROPLOGIC_FILTER_ANDGATE = 0x01;
|
||||||
public static final int DROPLOGIC_EXTERN_ANDGATE = 0x2;
|
public static final int DROPLOGIC_EXTERN_ANDGATE = 0x02;
|
||||||
public static final int DROPLOGIC_SILENT_DROP = 0x4;
|
public static final int DROPLOGIC_SILENT_DROP = 0x04;
|
||||||
public static final int DROPLOGIC_SILENT_OPEN = 0x8;
|
public static final int DROPLOGIC_SILENT_OPEN = 0x08;
|
||||||
|
public static final int DROPLOGIC_CONTINUOUS = 0x10;
|
||||||
///
|
///
|
||||||
private int filter_matches_[] = new int[CTRL_SLOTS_SIZE];
|
private int filter_matches_[] = new int[CTRL_SLOTS_SIZE];
|
||||||
private int open_timer_ = 0;
|
private int open_timer_ = 0;
|
||||||
|
@ -799,8 +802,10 @@ public class BlockDecorDropper extends BlockDecorDirected
|
||||||
if(--tick_timer_ > 0) return;
|
if(--tick_timer_ > 0) return;
|
||||||
tick_timer_ = TICK_INTERVAL;
|
tick_timer_ = TICK_INTERVAL;
|
||||||
boolean dirty = block_power_updated_;
|
boolean dirty = block_power_updated_;
|
||||||
boolean redstone_trigger = (block_power_signal_ && block_power_updated_);
|
final boolean continuous_mode = (drop_logic_ & DROPLOGIC_CONTINUOUS)!=0;
|
||||||
|
boolean redstone_trigger = (block_power_signal_ && ((block_power_updated_) || (continuous_mode)));
|
||||||
boolean filter_trigger;
|
boolean filter_trigger;
|
||||||
|
boolean filter_defined = false;
|
||||||
boolean trigger;
|
boolean trigger;
|
||||||
// Trigger logic
|
// Trigger logic
|
||||||
{
|
{
|
||||||
|
@ -808,9 +813,9 @@ public class BlockDecorDropper extends BlockDecorDirected
|
||||||
for(int i=INPUT_SLOTS_FIRST; i<(INPUT_SLOTS_FIRST+INPUT_SLOTS_SIZE); ++i) {
|
for(int i=INPUT_SLOTS_FIRST; i<(INPUT_SLOTS_FIRST+INPUT_SLOTS_SIZE); ++i) {
|
||||||
if(stacks_.get(i).getCount() >= drop_count_) { droppable_slot_found = true; break; }
|
if(stacks_.get(i).getCount() >= drop_count_) { droppable_slot_found = true; break; }
|
||||||
}
|
}
|
||||||
int filter_nset = 0;
|
|
||||||
// From filters / inventory checks
|
// From filters / inventory checks
|
||||||
{
|
{
|
||||||
|
int filter_nset = 0;
|
||||||
int last_filter_matches_[] = filter_matches_.clone();
|
int last_filter_matches_[] = filter_matches_.clone();
|
||||||
boolean slot_assigned = false;
|
boolean slot_assigned = false;
|
||||||
for(int ci=0; ci<CTRL_SLOTS_SIZE; ++ci) {
|
for(int ci=0; ci<CTRL_SLOTS_SIZE; ++ci) {
|
||||||
|
@ -836,12 +841,13 @@ public class BlockDecorDropper extends BlockDecorDirected
|
||||||
if(filter_matches_[i] > 1) ++nmatched;
|
if(filter_matches_[i] > 1) ++nmatched;
|
||||||
if(filter_matches_[i] != last_filter_matches_[i]) dirty = true;
|
if(filter_matches_[i] != last_filter_matches_[i]) dirty = true;
|
||||||
}
|
}
|
||||||
filter_trigger = ((filter_nset >0) && (nmatched > 0));
|
filter_defined = (filter_nset > 0);
|
||||||
|
filter_trigger = ((filter_nset > 0) && (nmatched > 0));
|
||||||
if(((drop_logic_ & DROPLOGIC_FILTER_ANDGATE) != 0) && (nmatched != filter_nset)) filter_trigger = false;
|
if(((drop_logic_ & DROPLOGIC_FILTER_ANDGATE) != 0) && (nmatched != filter_nset)) filter_trigger = false;
|
||||||
}
|
}
|
||||||
// gates
|
// gates
|
||||||
{
|
{
|
||||||
if(filter_nset > 0) {
|
if(filter_defined) {
|
||||||
trigger = ((drop_logic_ & DROPLOGIC_EXTERN_ANDGATE) != 0) ? (filter_trigger && redstone_trigger) : (filter_trigger || redstone_trigger);
|
trigger = ((drop_logic_ & DROPLOGIC_EXTERN_ANDGATE) != 0) ? (filter_trigger && redstone_trigger) : (filter_trigger || redstone_trigger);
|
||||||
} else {
|
} else {
|
||||||
trigger = redstone_trigger;
|
trigger = redstone_trigger;
|
||||||
|
|
|
@ -54,4 +54,8 @@ public class BlockDecorFull extends BlockDecor
|
||||||
public boolean isNormalCube(IBlockState state)
|
public boolean isNormalCube(IBlockState state)
|
||||||
{ return true; }
|
{ return true; }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getLightValue(IBlockState state, IBlockAccess world, BlockPos pos)
|
||||||
|
{ return (int)((config & CFG_LIGHT_VALUE_MASK) >> CFG_LIGHT_VALUE_SHIFT); }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,6 +15,7 @@ import net.minecraft.block.properties.PropertyInteger;
|
||||||
import net.minecraft.util.EnumHand;
|
import net.minecraft.util.EnumHand;
|
||||||
import net.minecraftforge.fml.relauncher.Side;
|
import net.minecraftforge.fml.relauncher.Side;
|
||||||
import net.minecraftforge.fml.relauncher.SideOnly;
|
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||||
|
import wile.engineersdecor.ModContent;
|
||||||
import wile.engineersdecor.detail.ModAuxiliaries;
|
import wile.engineersdecor.detail.ModAuxiliaries;
|
||||||
import net.minecraft.block.state.BlockStateContainer;
|
import net.minecraft.block.state.BlockStateContainer;
|
||||||
import net.minecraft.block.material.Material;
|
import net.minecraft.block.material.Material;
|
||||||
|
@ -108,9 +109,9 @@ public class BlockDecorHorizontalSupport extends BlockDecor
|
||||||
final EnumFacing dfacing = dstate.getValue(BlockDecorStraightPole.FACING);
|
final EnumFacing dfacing = dstate.getValue(BlockDecorStraightPole.FACING);
|
||||||
final BlockDecorStraightPole pole = (BlockDecorStraightPole)dstate.getBlock();
|
final BlockDecorStraightPole pole = (BlockDecorStraightPole)dstate.getBlock();
|
||||||
if((dfacing.getAxis() == EnumFacing.Axis.Y)) {
|
if((dfacing.getAxis() == EnumFacing.Axis.Y)) {
|
||||||
if((pole==ModBlocks.THICK_STEEL_POLE) || ((pole==ModBlocks.THICK_STEEL_POLE_HEAD) && (dfacing==EnumFacing.UP))) {
|
if((pole==ModContent.THICK_STEEL_POLE) || ((pole==ModContent.THICK_STEEL_POLE_HEAD) && (dfacing==EnumFacing.UP))) {
|
||||||
down_connector = 2;
|
down_connector = 2;
|
||||||
} else if((pole==ModBlocks.THIN_STEEL_POLE) || ((pole==ModBlocks.THIN_STEEL_POLE_HEAD) && (dfacing==EnumFacing.UP))) {
|
} else if((pole==ModContent.THIN_STEEL_POLE) || ((pole==ModContent.THIN_STEEL_POLE_HEAD) && (dfacing==EnumFacing.UP))) {
|
||||||
down_connector = 1;
|
down_connector = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,177 @@
|
||||||
|
/*
|
||||||
|
* @file BlockDecorDirected.java
|
||||||
|
* @author Stefan Wilhelm (wile)
|
||||||
|
* @copyright (C) 2019 Stefan Wilhelm
|
||||||
|
* @license MIT (see https://opensource.org/licenses/MIT)
|
||||||
|
*
|
||||||
|
* Smaller (cutout) block with a defined facing.
|
||||||
|
*/
|
||||||
|
package wile.engineersdecor.blocks;
|
||||||
|
|
||||||
|
import net.minecraft.util.math.MathHelper;
|
||||||
|
import net.minecraftforge.energy.CapabilityEnergy;
|
||||||
|
import net.minecraftforge.energy.IEnergyStorage;
|
||||||
|
import wile.engineersdecor.ModEngineersDecor;
|
||||||
|
import net.minecraft.block.properties.PropertyInteger;
|
||||||
|
import net.minecraft.block.state.BlockStateContainer;
|
||||||
|
import net.minecraft.block.material.Material;
|
||||||
|
import net.minecraft.block.state.BlockFaceShape;
|
||||||
|
import net.minecraft.block.state.IBlockState;
|
||||||
|
import net.minecraft.block.SoundType;
|
||||||
|
import net.minecraft.entity.EntityLivingBase;
|
||||||
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
import net.minecraft.util.ITickable;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
import net.minecraft.world.IBlockAccess;
|
||||||
|
import net.minecraft.util.EnumHand;
|
||||||
|
import net.minecraft.util.EnumFacing;
|
||||||
|
import net.minecraft.util.math.AxisAlignedBB;
|
||||||
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
|
|
||||||
|
public class BlockDecorSolarPanel extends BlockDecor
|
||||||
|
{
|
||||||
|
public static final PropertyInteger EXPOSITION = PropertyInteger.create("exposition", 0, 4);
|
||||||
|
|
||||||
|
public BlockDecorSolarPanel(@Nonnull String registryName, long config, @Nullable Material material, float hardness, float resistance, @Nullable SoundType sound, @Nonnull AxisAlignedBB unrotatedAABB)
|
||||||
|
{ super(registryName, config, material, hardness, resistance, sound, unrotatedAABB); }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isOpaqueCube(IBlockState state)
|
||||||
|
{ return false; }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isFullCube(IBlockState state)
|
||||||
|
{ return false; }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isNormalCube(IBlockState state)
|
||||||
|
{ return false; }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canCreatureSpawn(IBlockState state, IBlockAccess world, BlockPos pos, net.minecraft.entity.EntityLiving.SpawnPlacementType type)
|
||||||
|
{ return false; }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getLightValue(IBlockState state, IBlockAccess world, BlockPos pos)
|
||||||
|
{ return 0; }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BlockFaceShape getBlockFaceShape(IBlockAccess world, IBlockState state, BlockPos pos, EnumFacing face)
|
||||||
|
{ return BlockFaceShape.UNDEFINED; }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IBlockState getStateFromMeta(int meta)
|
||||||
|
{ return this.getDefaultState().withProperty(EXPOSITION, (meta & 0x7)); }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getMetaFromState(IBlockState state)
|
||||||
|
{ return state.getValue(EXPOSITION); }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected BlockStateContainer createBlockState()
|
||||||
|
{ return new BlockStateContainer(this, EXPOSITION); }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canPlaceBlockOnSide(World world, BlockPos pos, EnumFacing side)
|
||||||
|
{ return super.canPlaceBlockOnSide(world, pos, side); }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IBlockState getStateForPlacement(World world, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer, EnumHand hand)
|
||||||
|
{ return getDefaultState().withProperty(EXPOSITION, 0); }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean hasTileEntity(IBlockState state)
|
||||||
|
{ return true; }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Nullable
|
||||||
|
public TileEntity createTileEntity(World world, IBlockState state)
|
||||||
|
{ return new BlockDecorSolarPanel.BTileEntity(); }
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------------------------
|
||||||
|
// Tile entity
|
||||||
|
//--------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
public static class BTileEntity extends TileEntity implements ITickable
|
||||||
|
{
|
||||||
|
public static final int DEFAULT_PEAK_POWER = 45;
|
||||||
|
public static final int TICK_INTERVAL = 8;
|
||||||
|
public static final int ACCUMULATION_INTERVAL = 4;
|
||||||
|
private static final EnumFacing transfer_directions_[] = {EnumFacing.DOWN, EnumFacing.EAST, EnumFacing.SOUTH, EnumFacing.WEST, EnumFacing.NORTH };
|
||||||
|
private static int peak_power_per_tick_ = DEFAULT_PEAK_POWER;
|
||||||
|
private static int max_power_storage_ = 10000;
|
||||||
|
private int tick_timer_ = 0;
|
||||||
|
private int recalc_timer_ = 0;
|
||||||
|
private int accumulated_power_ = 0;
|
||||||
|
|
||||||
|
public static void on_config(int peak_power_per_tick)
|
||||||
|
{
|
||||||
|
peak_power_per_tick_ = peak_power_per_tick;
|
||||||
|
ModEngineersDecor.logger.info("Config small solar panel: Peak production:" + peak_power_per_tick_ + "/tick");
|
||||||
|
}
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
public BTileEntity()
|
||||||
|
{}
|
||||||
|
|
||||||
|
public void readnbt(NBTTagCompound nbt, boolean update_packet)
|
||||||
|
{ accumulated_power_ = nbt.getInteger("energy"); }
|
||||||
|
|
||||||
|
protected void writenbt(NBTTagCompound nbt, boolean update_packet)
|
||||||
|
{ nbt.setInteger("energy", accumulated_power_); }
|
||||||
|
|
||||||
|
// TileEntity ------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean shouldRefresh(World world, BlockPos pos, IBlockState os, IBlockState ns)
|
||||||
|
{ return (os.getBlock() != ns.getBlock()) || (!(ns.getBlock() instanceof BlockDecorSolarPanel)); }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void readFromNBT(NBTTagCompound nbt)
|
||||||
|
{ super.readFromNBT(nbt); readnbt(nbt, false); }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public NBTTagCompound writeToNBT(NBTTagCompound nbt)
|
||||||
|
{ super.writeToNBT(nbt); writenbt(nbt, false); return nbt; }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void update()
|
||||||
|
{
|
||||||
|
if((world.isRemote) || (--tick_timer_ > 0)) return;
|
||||||
|
tick_timer_ = TICK_INTERVAL;
|
||||||
|
if(!world.canSeeSky(pos)) { tick_timer_ = TICK_INTERVAL * 5; return; }
|
||||||
|
if(accumulated_power_ > 0) {
|
||||||
|
for(int i=0; (i<transfer_directions_.length) && (accumulated_power_>0); ++i) {
|
||||||
|
final EnumFacing f = transfer_directions_[i];
|
||||||
|
TileEntity te = world.getTileEntity(pos.offset(f));
|
||||||
|
if((te==null) || (!(te.hasCapability(CapabilityEnergy.ENERGY, f.getOpposite())))) continue;
|
||||||
|
IEnergyStorage es = te.getCapability(CapabilityEnergy.ENERGY, f.getOpposite());
|
||||||
|
if(!es.canReceive()) continue;
|
||||||
|
accumulated_power_ = MathHelper.clamp(accumulated_power_-es.receiveEnergy(accumulated_power_, false),0, accumulated_power_);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(--recalc_timer_ > 0) return;
|
||||||
|
recalc_timer_ = ACCUMULATION_INTERVAL + ((int)(Math.random()+.5));
|
||||||
|
IBlockState state = world.getBlockState(pos);
|
||||||
|
int theta = ((((int)(world.getCelestialAngleRadians(1f) * (180.0/Math.PI)))+90) % 360);
|
||||||
|
int e = 2;
|
||||||
|
if(theta > 340) e = 2;
|
||||||
|
else if(theta < 45) e = 0;
|
||||||
|
else if(theta < 80) e = 1;
|
||||||
|
else if(theta < 100) e = 2;
|
||||||
|
else if(theta < 135) e = 3;
|
||||||
|
else if(theta < 190) e = 4;
|
||||||
|
IBlockState nstate = state.withProperty(EXPOSITION, e);
|
||||||
|
if(nstate != state) world.setBlockState(pos, nstate, 1|2);
|
||||||
|
double rf = Math.abs(1.0-(((double)Math.abs(MathHelper.clamp(theta, 0, 180)-90))/90));
|
||||||
|
rf = Math.sqrt(rf) * world.getSunBrightnessFactor(1f) * ((TICK_INTERVAL*ACCUMULATION_INTERVAL)+2) * peak_power_per_tick_;
|
||||||
|
accumulated_power_ = Math.min(accumulated_power_+(int)rf, max_power_storage_);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,209 @@
|
||||||
|
/*
|
||||||
|
* @file BlockFurnace.java
|
||||||
|
* @author Stefan Wilhelm (wile)
|
||||||
|
* @copyright (C) 2019 Stefan Wilhelm
|
||||||
|
* @license MIT (see https://opensource.org/licenses/MIT)
|
||||||
|
*
|
||||||
|
* ED Lab furnace.
|
||||||
|
*/
|
||||||
|
package wile.engineersdecor.blocks;
|
||||||
|
|
||||||
|
import wile.engineersdecor.ModEngineersDecor;
|
||||||
|
import wile.engineersdecor.detail.TreeCutting;
|
||||||
|
import net.minecraft.block.properties.PropertyBool;
|
||||||
|
import net.minecraft.block.state.BlockStateContainer;
|
||||||
|
import net.minecraft.block.SoundType;
|
||||||
|
import net.minecraft.block.material.Material;
|
||||||
|
import net.minecraft.block.state.IBlockState;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
import net.minecraft.entity.EntityLivingBase;
|
||||||
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
import net.minecraft.init.SoundEvents;
|
||||||
|
import net.minecraft.util.math.AxisAlignedBB;
|
||||||
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
import net.minecraft.util.math.MathHelper;
|
||||||
|
import net.minecraft.util.*;
|
||||||
|
import net.minecraftforge.common.capabilities.Capability;
|
||||||
|
import net.minecraftforge.energy.CapabilityEnergy;
|
||||||
|
import net.minecraftforge.energy.IEnergyStorage;
|
||||||
|
import net.minecraftforge.fml.relauncher.Side;
|
||||||
|
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
import javax.annotation.Nullable;
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
|
|
||||||
|
public class BlockDecorTreeCutter extends BlockDecorDirectedHorizontal
|
||||||
|
{
|
||||||
|
public static final PropertyBool ACTIVE = PropertyBool.create("active");
|
||||||
|
|
||||||
|
public BlockDecorTreeCutter(@Nonnull String registryName, long config, @Nullable Material material, float hardness, float resistance, @Nullable SoundType sound, @Nonnull AxisAlignedBB unrotatedAABB)
|
||||||
|
{
|
||||||
|
super(registryName, config, material, hardness, resistance, sound, unrotatedAABB);
|
||||||
|
setLightOpacity(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected BlockStateContainer createBlockState()
|
||||||
|
{ return new BlockStateContainer(this, FACING, ACTIVE); }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IBlockState getStateFromMeta(int meta)
|
||||||
|
{ return getDefaultState().withProperty(FACING, EnumFacing.byHorizontalIndex(meta & 0x3)).withProperty(ACTIVE, (meta & 0x4)!=0); }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getMetaFromState(IBlockState state)
|
||||||
|
{ return (state.getValue(FACING).getHorizontalIndex() & 0x3) | (state.getValue(ACTIVE) ? 4 : 0); }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IBlockState getStateForPlacement(World world, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer, EnumHand hand)
|
||||||
|
{ return super.getStateForPlacement(world, pos, facing, hitX, hitY, hitZ, meta, placer, hand).withProperty(ACTIVE, false); }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean hasTileEntity(IBlockState state)
|
||||||
|
{ return true; }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Nullable
|
||||||
|
public TileEntity createTileEntity(World world, IBlockState state)
|
||||||
|
{ return new BlockDecorTreeCutter.BTileEntity(); }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
|
public void randomDisplayTick(IBlockState state, World world, BlockPos pos, Random rnd)
|
||||||
|
{
|
||||||
|
if((state.getBlock()!=this) || (!state.getValue(ACTIVE))) return;
|
||||||
|
final double rv = rnd.nextDouble();
|
||||||
|
if(rv > 0.8) return;
|
||||||
|
final double x=0.5+pos.getX(), y=0.5+pos.getY(), z=0.5+pos.getZ();
|
||||||
|
final double xc=0.52, xr=rnd.nextDouble()*0.4-0.2, yr=(y-0.3+rnd.nextDouble()*0.2);
|
||||||
|
switch(state.getValue(FACING)) {
|
||||||
|
case WEST: world.spawnParticle(EnumParticleTypes.SMOKE_NORMAL, x-xc, yr, z+xr, 0.0, 0.0, 0.0); break;
|
||||||
|
case EAST: world.spawnParticle(EnumParticleTypes.SMOKE_NORMAL, x+xc, yr, z+xr, 0.0, 0.0, 0.0); break;
|
||||||
|
case NORTH: world.spawnParticle(EnumParticleTypes.SMOKE_NORMAL, x+xr, yr, z-xc, 0.0, 0.0, 0.0); break;
|
||||||
|
default: world.spawnParticle(EnumParticleTypes.SMOKE_NORMAL, x+xr, yr, z+xc, 0.0, 0.0, 0.0); break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------------------------
|
||||||
|
// Tile entity
|
||||||
|
//--------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
public static class BTileEntity extends TileEntity implements ITickable, IEnergyStorage
|
||||||
|
{
|
||||||
|
public static final int IDLE_TICK_INTERVAL = 40;
|
||||||
|
public static final int TICK_INTERVAL = 5;
|
||||||
|
public static final int BOOST_FACTOR = 6;
|
||||||
|
public static final int DEFAULT_BOOST_ENERGY = 64;
|
||||||
|
public static final int DEFAULT_CUTTING_TIME_NEEDED = 20 * 60; // 60 secs, so that people don't come to the bright idea to carry one with them.
|
||||||
|
private static int boost_energy_consumption = DEFAULT_BOOST_ENERGY;
|
||||||
|
private static int cutting_time_needed = DEFAULT_CUTTING_TIME_NEEDED;
|
||||||
|
|
||||||
|
private int tick_timer_;
|
||||||
|
private int proc_time_elapsed_; // small, not saved in nbt.
|
||||||
|
private int boost_energy_; // small, not saved in nbt.
|
||||||
|
|
||||||
|
public static void on_config(int boost_energy_per_tick)
|
||||||
|
{
|
||||||
|
boost_energy_consumption = TICK_INTERVAL * MathHelper.clamp(boost_energy_per_tick, 16, 512);
|
||||||
|
ModEngineersDecor.logger.info("Config tree cutter: Boost energy consumption:" + boost_energy_consumption + "rf/t");
|
||||||
|
}
|
||||||
|
|
||||||
|
public BTileEntity()
|
||||||
|
{}
|
||||||
|
|
||||||
|
// TileEntity ------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean shouldRefresh(World world, BlockPos pos, IBlockState os, IBlockState ns)
|
||||||
|
{ return (os.getBlock() != ns.getBlock()) || (!(ns.getBlock() instanceof BlockDecorTreeCutter)); }
|
||||||
|
|
||||||
|
// IEnergyStorage ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canExtract()
|
||||||
|
{ return false; }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canReceive()
|
||||||
|
{ return true; }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getMaxEnergyStored()
|
||||||
|
{ return boost_energy_consumption; }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getEnergyStored()
|
||||||
|
{ return boost_energy_; }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int extractEnergy(int maxExtract, boolean simulate)
|
||||||
|
{ return 0; }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int receiveEnergy(int maxReceive, boolean simulate)
|
||||||
|
{ // only speedup support, no buffering, not in nbt -> no markdirty
|
||||||
|
if((boost_energy_ >= boost_energy_consumption) || (maxReceive < boost_energy_consumption)) return 0;
|
||||||
|
if(!simulate) boost_energy_ = boost_energy_consumption;
|
||||||
|
return boost_energy_consumption;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Capability export ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean hasCapability(Capability<?> cap, EnumFacing facing)
|
||||||
|
{ return ((cap==CapabilityEnergy.ENERGY)) || super.hasCapability(cap, facing); }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
@Nullable
|
||||||
|
public <T> T getCapability(Capability<T> capability, @Nullable EnumFacing facing)
|
||||||
|
{
|
||||||
|
if(capability == CapabilityEnergy.ENERGY) {
|
||||||
|
return (T)this;
|
||||||
|
} else {
|
||||||
|
return super.getCapability(capability, facing);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ITickable ------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void update()
|
||||||
|
{
|
||||||
|
if(--tick_timer_ > 0) return;
|
||||||
|
if(world.isRemote) {
|
||||||
|
if(!world.getBlockState(pos).getValue(ACTIVE)) {
|
||||||
|
tick_timer_ = TICK_INTERVAL;
|
||||||
|
} else {
|
||||||
|
tick_timer_ = 1;
|
||||||
|
world.playSound(pos.getX(), pos.getY(), pos.getZ(), SoundEvents.BLOCK_WOOD_HIT, SoundCategory.BLOCKS, 0.1f, 1.0f, false);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
tick_timer_ = TICK_INTERVAL;
|
||||||
|
final IBlockState device_state = world.getBlockState(pos);
|
||||||
|
final BlockPos tree_pos = pos.offset(device_state.getValue(FACING));
|
||||||
|
final IBlockState tree_state = world.getBlockState(tree_pos);
|
||||||
|
if(!TreeCutting.canChop(tree_state) || (world.isBlockPowered(pos))) {
|
||||||
|
if(device_state.getValue(ACTIVE)) world.setBlockState(pos, device_state.withProperty(ACTIVE, false), 1|2);
|
||||||
|
proc_time_elapsed_ = 0;
|
||||||
|
tick_timer_ = IDLE_TICK_INTERVAL;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
proc_time_elapsed_ += TICK_INTERVAL;
|
||||||
|
if(boost_energy_ >= boost_energy_consumption) { boost_energy_ = 0; proc_time_elapsed_ += TICK_INTERVAL*BOOST_FACTOR; }
|
||||||
|
boolean active = true;
|
||||||
|
if(proc_time_elapsed_ >= cutting_time_needed) {
|
||||||
|
proc_time_elapsed_ = 0;
|
||||||
|
TreeCutting.chopTree(world, tree_state, tree_pos, 512, false);
|
||||||
|
world.playSound(null, pos.getX(), pos.getY(), pos.getZ(), SoundEvents.BLOCK_WOOD_BREAK, SoundCategory.BLOCKS, 1.0f, 1.0f);
|
||||||
|
active = false;
|
||||||
|
}
|
||||||
|
if(device_state.getValue(ACTIVE) != active) {
|
||||||
|
world.setBlockState(pos, device_state.withProperty(ACTIVE, active), 1|2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,101 @@
|
||||||
|
/*
|
||||||
|
* @file BlockCategories.java
|
||||||
|
* @author Stefan Wilhelm (wile)
|
||||||
|
* @copyright (C) 2019 Stefan Wilhelm
|
||||||
|
* @license MIT (see https://opensource.org/licenses/MIT)
|
||||||
|
*
|
||||||
|
* Oredict based block category cache.
|
||||||
|
*/
|
||||||
|
package wile.engineersdecor.detail;
|
||||||
|
|
||||||
|
import wile.engineersdecor.ModEngineersDecor;
|
||||||
|
import net.minecraft.block.*;
|
||||||
|
import net.minecraft.block.properties.IProperty;
|
||||||
|
import net.minecraft.block.state.IBlockState;
|
||||||
|
import net.minecraft.block.material.Material;
|
||||||
|
import net.minecraft.item.Item;
|
||||||
|
import net.minecraft.item.ItemBlock;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraftforge.oredict.OreDictionary;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
|
||||||
|
public class BlockCategories
|
||||||
|
{
|
||||||
|
private static Set<Block> logs_ = new HashSet<Block>();
|
||||||
|
private static Set<Block> leaves_ = new HashSet<Block>();
|
||||||
|
|
||||||
|
public static final Set<Block> logs()
|
||||||
|
{ return logs_; } // wrap in case immutable needed one time.
|
||||||
|
|
||||||
|
public static final Set<Block> leaves()
|
||||||
|
{ return leaves_; }
|
||||||
|
|
||||||
|
|
||||||
|
public static boolean isLog(IBlockState state)
|
||||||
|
{
|
||||||
|
final Block block = state.getBlock();
|
||||||
|
return (block instanceof BlockLog) || (block instanceof BlockNewLog) || (logs().contains(block));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isLeaves(IBlockState state)
|
||||||
|
{
|
||||||
|
if(state.getMaterial()==Material.LEAVES) return true;
|
||||||
|
final Block block = state.getBlock();
|
||||||
|
return (block instanceof BlockLeaves) || (leaves().contains(block));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static final boolean isSameLeaves(IBlockState a, IBlockState b)
|
||||||
|
{ return (a.getBlock() == b.getBlock()); }
|
||||||
|
|
||||||
|
public static final boolean isSameLog(IBlockState a, IBlockState b)
|
||||||
|
{
|
||||||
|
// very strange ...
|
||||||
|
if(a.getBlock()!=b.getBlock()) {
|
||||||
|
return false;
|
||||||
|
} else if(a.getBlock() instanceof BlockNewLog) {
|
||||||
|
return a.getValue(BlockNewLog.VARIANT) == b.getValue(BlockNewLog.VARIANT);
|
||||||
|
} else if(a.getBlock() instanceof BlockOldLog) {
|
||||||
|
return a.getValue(BlockOldLog.VARIANT) == b.getValue(BlockOldLog.VARIANT);
|
||||||
|
} else {
|
||||||
|
// Uagh, that hurts the heart of performance ...
|
||||||
|
final IProperty<?> prop = a.getPropertyKeys().stream().filter( (IProperty<?> p) -> (p.getName().contains("variant") || p.getName().contains("type"))).findFirst().orElse(null);
|
||||||
|
if(prop==null) return false;
|
||||||
|
return a.getValue(prop).equals(b.getValue(prop));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static final void reload()
|
||||||
|
{
|
||||||
|
{
|
||||||
|
HashSet<Block> logs = new HashSet<Block>();
|
||||||
|
for(final String ore_name : OreDictionary.getOreNames()) {
|
||||||
|
if(!ore_name.startsWith("logWood")) continue;
|
||||||
|
final List<ItemStack> stacks = OreDictionary.getOres(ore_name, false);
|
||||||
|
for(ItemStack stack : stacks) {
|
||||||
|
final Item item = stack.getItem();
|
||||||
|
if(!(item instanceof ItemBlock)) continue;
|
||||||
|
logs.add(((ItemBlock)item).getBlock());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
logs_ = logs;
|
||||||
|
ModEngineersDecor.logger.info("Found "+logs.size()+" types of 'choppable' log.");
|
||||||
|
}
|
||||||
|
{
|
||||||
|
HashSet<Block> leaves = new HashSet<Block>();
|
||||||
|
for(final String ore_name : OreDictionary.getOreNames()) {
|
||||||
|
if(!ore_name.startsWith("treeLeaves")) continue;
|
||||||
|
final List<ItemStack> stacks = OreDictionary.getOres(ore_name, false);
|
||||||
|
for(ItemStack stack : stacks) {
|
||||||
|
final Item item = stack.getItem();
|
||||||
|
if(!(item instanceof ItemBlock)) continue;
|
||||||
|
leaves.add(((ItemBlock)item).getBlock());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
leaves_ = leaves;
|
||||||
|
ModEngineersDecor.logger.info("Found "+leaves.size()+" types of leaves.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -9,6 +9,7 @@
|
||||||
*/
|
*/
|
||||||
package wile.engineersdecor.detail;
|
package wile.engineersdecor.detail;
|
||||||
|
|
||||||
|
import wile.engineersdecor.ModContent;
|
||||||
import wile.engineersdecor.ModEngineersDecor;
|
import wile.engineersdecor.ModEngineersDecor;
|
||||||
import wile.engineersdecor.blocks.*;
|
import wile.engineersdecor.blocks.*;
|
||||||
import net.minecraftforge.common.config.Config;
|
import net.minecraftforge.common.config.Config;
|
||||||
|
@ -320,6 +321,17 @@ public class ModConfig
|
||||||
@Config.Name("E-furnace: Power consumption")
|
@Config.Name("E-furnace: Power consumption")
|
||||||
@Config.RangeInt(min=10, max=256)
|
@Config.RangeInt(min=10, max=256)
|
||||||
public int e_furnace_power_consumption = BlockDecorFurnaceElectrical.BTileEntity.DEFAULT_ENERGY_CONSUMPTION;
|
public int e_furnace_power_consumption = BlockDecorFurnaceElectrical.BTileEntity.DEFAULT_ENERGY_CONSUMPTION;
|
||||||
|
|
||||||
|
@Config.Comment({
|
||||||
|
"Defines the peak power production (at noon) of the Small Solar Panel. " +
|
||||||
|
"Note that the agerage power is much less, as no power is produced at all during the night, " +
|
||||||
|
"and the power curve is nonlinear rising/falling during the day. Bad weather conditions also " +
|
||||||
|
"decrease the production. " +
|
||||||
|
"The config value can be changed on-the-fly for tuning."
|
||||||
|
})
|
||||||
|
@Config.Name("Solar panel: Peak power")
|
||||||
|
@Config.RangeInt(min=5, max=128)
|
||||||
|
public int solar_panel_peak_power = BlockDecorSolarPanel.BTileEntity.DEFAULT_PEAK_POWER;
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
|
@ -340,7 +352,7 @@ public class ModConfig
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
public static final void onPostInit(FMLPostInitializationEvent event)
|
public static final void onPostInit(FMLPostInitializationEvent event)
|
||||||
{ for(Block e:ModBlocks.getRegisteredBlocks()) ModConfig.isOptedOut(e, true); }
|
{ for(Block e: ModContent.getRegisteredBlocks()) ModConfig.isOptedOut(e, true); }
|
||||||
|
|
||||||
private static final ArrayList<String> includes_ = new ArrayList<String>();
|
private static final ArrayList<String> includes_ = new ArrayList<String>();
|
||||||
private static final ArrayList<String> excludes_ = new ArrayList<String>();
|
private static final ArrayList<String> excludes_ = new ArrayList<String>();
|
||||||
|
@ -360,7 +372,7 @@ public class ModConfig
|
||||||
public static final boolean isOptedOut(final @Nullable Block block, boolean with_log_details)
|
public static final boolean isOptedOut(final @Nullable Block block, boolean with_log_details)
|
||||||
{
|
{
|
||||||
if((block == null) || (optout==null)) return true;
|
if((block == null) || (optout==null)) return true;
|
||||||
if(block == ModBlocks.SIGN_MODLOGO) return true;
|
if(block == ModContent.SIGN_MODLOGO) return true;
|
||||||
if((!zmisc.with_experimental) && (block instanceof ModAuxiliaries.IExperimentalFeature)) return true;
|
if((!zmisc.with_experimental) && (block instanceof ModAuxiliaries.IExperimentalFeature)) return true;
|
||||||
final String rn = block.getRegistryName().getPath();
|
final String rn = block.getRegistryName().getPath();
|
||||||
// Force-include/exclude pattern matching
|
// Force-include/exclude pattern matching
|
||||||
|
@ -432,6 +444,7 @@ public class ModConfig
|
||||||
BlockDecorCraftingTable.on_config(optout.without_crafting_table_history, false, tweaks.with_crafting_quickmove_buttons);
|
BlockDecorCraftingTable.on_config(optout.without_crafting_table_history, false, tweaks.with_crafting_quickmove_buttons);
|
||||||
BlockDecorPipeValve.on_config(tweaks.pipevalve_max_flowrate, tweaks.pipevalve_redstone_slope);
|
BlockDecorPipeValve.on_config(tweaks.pipevalve_max_flowrate, tweaks.pipevalve_redstone_slope);
|
||||||
BlockDecorFurnaceElectrical.BTileEntity.on_config(tweaks.e_furnace_speed_percent, tweaks.e_furnace_power_consumption);
|
BlockDecorFurnaceElectrical.BTileEntity.on_config(tweaks.e_furnace_speed_percent, tweaks.e_furnace_power_consumption);
|
||||||
|
BlockDecorSolarPanel.BTileEntity.on_config(tweaks.solar_panel_peak_power);
|
||||||
{
|
{
|
||||||
optout.includes = optout.includes.toLowerCase().replaceAll(ModEngineersDecor.MODID+":", "").replaceAll("[^*_,a-z0-9]", "");
|
optout.includes = optout.includes.toLowerCase().replaceAll(ModEngineersDecor.MODID+":", "").replaceAll("[^*_,a-z0-9]", "");
|
||||||
if(!optout.includes.isEmpty()) ModEngineersDecor.logger.info("Pattern includes: '" + optout.includes + "'");
|
if(!optout.includes.isEmpty()) ModEngineersDecor.logger.info("Pattern includes: '" + optout.includes + "'");
|
||||||
|
|
168
1.12/src/main/java/wile/engineersdecor/detail/TreeCutting.java
Normal file
|
@ -0,0 +1,168 @@
|
||||||
|
/*
|
||||||
|
* @file TreeCutting.java
|
||||||
|
* @author Stefan Wilhelm (wile)
|
||||||
|
* @copyright (C) 2019 Stefan Wilhelm
|
||||||
|
* @license MIT (see https://opensource.org/licenses/MIT)
|
||||||
|
*
|
||||||
|
* Simple tree cutting algorithm.
|
||||||
|
*/
|
||||||
|
package wile.engineersdecor.detail;
|
||||||
|
|
||||||
|
import com.google.common.collect.ImmutableList;
|
||||||
|
import net.minecraft.block.Block;
|
||||||
|
import net.minecraft.block.BlockVine;
|
||||||
|
import net.minecraft.block.state.IBlockState;
|
||||||
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
import net.minecraft.util.math.MathHelper;
|
||||||
|
import net.minecraft.util.math.Vec3i;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
public class TreeCutting
|
||||||
|
{
|
||||||
|
private static final List<Vec3i> hoffsets = ImmutableList.of(
|
||||||
|
new Vec3i( 1,0, 0), new Vec3i( 1,0, 1), new Vec3i( 0,0, 1),
|
||||||
|
new Vec3i(-1,0, 1), new Vec3i(-1,0, 0), new Vec3i(-1,0,-1),
|
||||||
|
new Vec3i( 0,0,-1), new Vec3i( 1,0,-1)
|
||||||
|
);
|
||||||
|
|
||||||
|
private static List<BlockPos> findBlocksAround(final World world, final BlockPos centerPos, final IBlockState leaf_type_state, final Set<BlockPos> checked, int recursion_left)
|
||||||
|
{
|
||||||
|
ArrayList<BlockPos> to_decay = new ArrayList<BlockPos>();
|
||||||
|
for(int y=-1; y<=1; ++y) {
|
||||||
|
final BlockPos layer = centerPos.add(0,y,0);
|
||||||
|
for(Vec3i v:hoffsets) {
|
||||||
|
BlockPos pos = layer.add(v);
|
||||||
|
if((!checked.contains(pos)) && BlockCategories.isSameLeaves(leaf_type_state, world.getBlockState(pos))) {
|
||||||
|
checked.add(pos);
|
||||||
|
to_decay.add(pos);
|
||||||
|
if(recursion_left > 0) {
|
||||||
|
to_decay.addAll(findBlocksAround(world, pos, leaf_type_state, checked, recursion_left-1));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return to_decay;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean canChop(IBlockState state)
|
||||||
|
{ return BlockCategories.isLog(state); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Chops a tree, returns the damage that the cutting tool shall take
|
||||||
|
*/
|
||||||
|
public static int chopTree(World world, IBlockState broken_state, BlockPos startPos, int max_blocks_to_break, boolean without_target_block)
|
||||||
|
{
|
||||||
|
if(!BlockCategories.isLog(broken_state)) return 0;
|
||||||
|
final long ymin = startPos.getY();
|
||||||
|
final long max_leaf_distance = 6;
|
||||||
|
Set<BlockPos> checked = new HashSet<BlockPos>();
|
||||||
|
ArrayList<BlockPos> to_break = new ArrayList<BlockPos>();
|
||||||
|
ArrayList<BlockPos> to_decay = new ArrayList<BlockPos>();
|
||||||
|
checked.add(startPos);
|
||||||
|
// Initial simple layer-up search of same logs. This forms the base corpus, and only leaves and
|
||||||
|
// leaf-enclosed logs attached to this corpus may be broken/decayed.
|
||||||
|
{
|
||||||
|
LinkedList<BlockPos> queue = new LinkedList<BlockPos>();
|
||||||
|
LinkedList<BlockPos> upqueue = new LinkedList<BlockPos>();
|
||||||
|
queue.add(startPos);
|
||||||
|
int cutlevel = 0;
|
||||||
|
int steps_left = 64;
|
||||||
|
while(!queue.isEmpty() && (--steps_left >= 0)) {
|
||||||
|
final BlockPos pos = queue.removeFirst();
|
||||||
|
// Vertical search
|
||||||
|
final BlockPos uppos = pos.up();
|
||||||
|
final IBlockState upstate = world.getBlockState(uppos);
|
||||||
|
if(!checked.contains(uppos)) {
|
||||||
|
checked.add(uppos);
|
||||||
|
if(BlockCategories.isSameLog(upstate, broken_state)) {
|
||||||
|
// Up is log
|
||||||
|
upqueue.add(uppos);
|
||||||
|
to_break.add(uppos);
|
||||||
|
steps_left = 64;
|
||||||
|
} else {
|
||||||
|
boolean isleaf = BlockCategories.isLeaves(upstate);
|
||||||
|
if(isleaf || world.isAirBlock(uppos) || (upstate.getBlock() instanceof BlockVine)) {
|
||||||
|
if(isleaf) to_decay.add(uppos);
|
||||||
|
// Up is air, check adjacent for diagonal up (e.g. Accacia)
|
||||||
|
for(Vec3i v:hoffsets) {
|
||||||
|
final BlockPos p = uppos.add(v);
|
||||||
|
if(checked.contains(p)) continue;
|
||||||
|
checked.add(p);
|
||||||
|
final IBlockState st = world.getBlockState(p);
|
||||||
|
final Block bl = st.getBlock();
|
||||||
|
if(BlockCategories.isSameLog(st, broken_state)) {
|
||||||
|
queue.add(p);
|
||||||
|
to_break.add(p);
|
||||||
|
} else if(BlockCategories.isLeaves(st)) {
|
||||||
|
to_decay.add(p);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Lateral search
|
||||||
|
for(Vec3i v:hoffsets) {
|
||||||
|
final BlockPos p = pos.add(v);
|
||||||
|
if(checked.contains(p)) continue;
|
||||||
|
checked.add(p);
|
||||||
|
if(p.distanceSq(new BlockPos(startPos.getX(), p.getY(), startPos.getZ())) > (3+cutlevel*cutlevel)) continue;
|
||||||
|
final IBlockState st = world.getBlockState(p);
|
||||||
|
final Block bl = st.getBlock();
|
||||||
|
if(BlockCategories.isSameLog(st, broken_state)) {
|
||||||
|
queue.add(p);
|
||||||
|
to_break.add(p);
|
||||||
|
} else if(BlockCategories.isLeaves(st)) {
|
||||||
|
to_decay.add(p);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(queue.isEmpty() && (!upqueue.isEmpty())) {
|
||||||
|
queue = upqueue;
|
||||||
|
upqueue = new LinkedList<BlockPos>();
|
||||||
|
++cutlevel;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
// Determine lose logs between the leafs
|
||||||
|
for(BlockPos pos:to_decay) {
|
||||||
|
int dist = 1;
|
||||||
|
to_break.addAll(findBlocksAround(world, pos, broken_state, checked, dist));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(!to_decay.isEmpty()) {
|
||||||
|
final IBlockState leaf_type_state = world.getBlockState(to_decay.get(0));
|
||||||
|
final ArrayList<BlockPos> leafs = to_decay;
|
||||||
|
to_decay = new ArrayList<BlockPos>();
|
||||||
|
for(BlockPos pos:leafs) {
|
||||||
|
int dist = 2;
|
||||||
|
to_decay.add(pos);
|
||||||
|
to_decay.addAll(findBlocksAround(world, pos, leaf_type_state, checked, dist));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(without_target_block) {
|
||||||
|
checked.remove(startPos);
|
||||||
|
} else {
|
||||||
|
to_break.add(startPos);
|
||||||
|
}
|
||||||
|
int num_broken = 0;
|
||||||
|
Collections.reverse(to_break);
|
||||||
|
for(BlockPos pos:to_break) {
|
||||||
|
if(++num_broken > max_blocks_to_break) break;
|
||||||
|
IBlockState state = world.getBlockState(pos);
|
||||||
|
world.setBlockToAir(pos);
|
||||||
|
state.getBlock().dropBlockAsItem(world, pos, state, 0);
|
||||||
|
}
|
||||||
|
for(BlockPos pos:to_decay) {
|
||||||
|
if(++num_broken > max_blocks_to_break) break;
|
||||||
|
IBlockState state = world.getBlockState(pos);
|
||||||
|
world.setBlockToAir(pos);
|
||||||
|
state.getBlock().dropBlockAsItem(world, pos, state, 0);
|
||||||
|
}
|
||||||
|
{
|
||||||
|
// And now the bill.
|
||||||
|
return MathHelper.clamp(((to_break.size()*6/5)+(to_decay.size()/10)-1), 1, 65535);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -9,8 +9,8 @@
|
||||||
package wile.engineersdecor.eapi.jei;
|
package wile.engineersdecor.eapi.jei;
|
||||||
|
|
||||||
import wile.engineersdecor.ModEngineersDecor;
|
import wile.engineersdecor.ModEngineersDecor;
|
||||||
import wile.engineersdecor.blocks.BlockDecorCraftingTable;
|
import wile.engineersdecor.ModContent;
|
||||||
import wile.engineersdecor.blocks.ModBlocks;
|
import wile.engineersdecor.blocks.*;
|
||||||
import wile.engineersdecor.detail.ModConfig;
|
import wile.engineersdecor.detail.ModConfig;
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.item.Item;
|
import net.minecraft.item.Item;
|
||||||
|
@ -25,7 +25,7 @@ public class JEIPlugin implements mezz.jei.api.IModPlugin
|
||||||
{
|
{
|
||||||
// Block/item hiding
|
// Block/item hiding
|
||||||
try {
|
try {
|
||||||
for(Block e:ModBlocks.getRegisteredBlocks()) {
|
for(Block e:ModContent.getRegisteredBlocks()) {
|
||||||
if(ModConfig.isOptedOut(e)) {
|
if(ModConfig.isOptedOut(e)) {
|
||||||
ItemStack stack = new ItemStack(Item.getItemFromBlock(e));
|
ItemStack stack = new ItemStack(Item.getItemFromBlock(e));
|
||||||
if(stack != null) {
|
if(stack != null) {
|
||||||
|
|
|
@ -1,63 +0,0 @@
|
||||||
/*
|
|
||||||
* @file ModItems.java
|
|
||||||
* @author Stefan Wilhelm (wile)
|
|
||||||
* @copyright (C) 2018 Stefan Wilhelm
|
|
||||||
* @license MIT (see https://opensource.org/licenses/MIT)
|
|
||||||
*
|
|
||||||
* Definition and initialisation of items of this module.
|
|
||||||
*/
|
|
||||||
package wile.engineersdecor.items;
|
|
||||||
|
|
||||||
import wile.engineersdecor.ModEngineersDecor;
|
|
||||||
import wile.engineersdecor.detail.ModConfig;
|
|
||||||
import net.minecraft.item.Item;
|
|
||||||
import net.minecraftforge.event.RegistryEvent;
|
|
||||||
import net.minecraftforge.fml.relauncher.Side;
|
|
||||||
import net.minecraftforge.fml.relauncher.SideOnly;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Collections;
|
|
||||||
import javax.annotation.Nonnull;
|
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
|
||||||
public class ModItems
|
|
||||||
{
|
|
||||||
|
|
||||||
private static final Item[] modItems = {
|
|
||||||
};
|
|
||||||
|
|
||||||
private static final ArrayList<Item> registeredItems = new ArrayList<>();
|
|
||||||
|
|
||||||
@Nonnull
|
|
||||||
public static List<Item> getRegisteredItems()
|
|
||||||
{ return Collections.unmodifiableList(registeredItems); }
|
|
||||||
|
|
||||||
public static final void registerItems(RegistryEvent.Register<Item> event)
|
|
||||||
{
|
|
||||||
// Config based registry selection
|
|
||||||
int num_registrations_skipped = 0;
|
|
||||||
ArrayList<Item> allItems = new ArrayList<>();
|
|
||||||
Collections.addAll(allItems, modItems);
|
|
||||||
final boolean woor = ModConfig.isWithoutOptOutRegistration();
|
|
||||||
for(Item e:allItems) {
|
|
||||||
if((!woor) || (!ModConfig.isOptedOut(e))) {
|
|
||||||
registeredItems.add(e);
|
|
||||||
} else {
|
|
||||||
++num_registrations_skipped;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for(Item e:registeredItems) event.getRegistry().register(e);
|
|
||||||
ModEngineersDecor.logger.info("Registered " + Integer.toString(registeredItems.size()) + " items.");
|
|
||||||
if(num_registrations_skipped > 0) {
|
|
||||||
ModEngineersDecor.logger.info("Skipped registration of " + num_registrations_skipped + " items.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@SideOnly(Side.CLIENT)
|
|
||||||
public static final void initModels()
|
|
||||||
{
|
|
||||||
for(Item e:registeredItems) {
|
|
||||||
if(e instanceof ItemDecor) ((ItemDecor)e).initModel();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
{
|
||||||
|
"forge_marker": 1,
|
||||||
|
"defaults": {
|
||||||
|
"model": "engineersdecor:device/small_solar_panel_model_exp1"
|
||||||
|
},
|
||||||
|
"variants": {
|
||||||
|
"normal": [{}],
|
||||||
|
"inventory": [{}],
|
||||||
|
"exposition": {
|
||||||
|
"0" : { "model": "engineersdecor:device/small_solar_panel_model_exp0" },
|
||||||
|
"1" : {},
|
||||||
|
"2" : { "model": "engineersdecor:device/small_solar_panel_model_exp2" },
|
||||||
|
"3" : { "model": "engineersdecor:device/small_solar_panel_model_exp3" },
|
||||||
|
"4" : { "model": "engineersdecor:device/small_solar_panel_model_exp4" }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"forge_marker": 1,
|
||||||
|
"defaults": {
|
||||||
|
"model": "engineersdecor:device/small_tree_cutter_model"
|
||||||
|
},
|
||||||
|
"variants": {
|
||||||
|
"normal": [{}],
|
||||||
|
"inventory": [{}],
|
||||||
|
"facing": { "north": {"y":0}, "south": {"y":180}, "west": {"y":-90}, "east": {"y":90}, "up":{}, "down":{} },
|
||||||
|
"active": { "true":{ "model": "engineersdecor:device/small_tree_cutter_model_active" }, "false":{}}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,16 @@
|
||||||
|
{
|
||||||
|
"forge_marker": 1,
|
||||||
|
"defaults": {
|
||||||
|
"model": "engineersdecor:std/decor_full_block_model",
|
||||||
|
"textures": { "all": "engineersdecor:blocks/furniture/treated_wood_floor_texture_1" }
|
||||||
|
},
|
||||||
|
"variants": {
|
||||||
|
"normal": [
|
||||||
|
{ "textures":{ "all": "engineersdecor:blocks/furniture/treated_wood_floor_texture_1" }},
|
||||||
|
{ "textures":{ "all": "engineersdecor:blocks/furniture/treated_wood_floor_texture_2" }},
|
||||||
|
{ "textures":{ "all": "engineersdecor:blocks/furniture/treated_wood_floor_texture_3" }},
|
||||||
|
{ "textures":{ "all": "engineersdecor:blocks/furniture/treated_wood_floor_texture_4" }}
|
||||||
|
],
|
||||||
|
"inventory": [{}]
|
||||||
|
}
|
||||||
|
}
|
|
@ -36,6 +36,8 @@ tile.engineersdecor.rebar_concrete_tile_slab.name=Rebar Concrete Tile Slab
|
||||||
tile.engineersdecor.rebar_concrete_tile_slab.help=§6Steel reinforced concrete tile slab.§r Expensive but Creeper-proof like obsidian.
|
tile.engineersdecor.rebar_concrete_tile_slab.help=§6Steel reinforced concrete tile slab.§r Expensive but Creeper-proof like obsidian.
|
||||||
tile.engineersdecor.panzerglass_slab.name=Panzer Glass Slab
|
tile.engineersdecor.panzerglass_slab.name=Panzer Glass Slab
|
||||||
tile.engineersdecor.panzerglass_slab.help=§6Reinforced glass slab.§r Expensive, explosion-proof. Dark gray tint, faint structural lines visible.
|
tile.engineersdecor.panzerglass_slab.help=§6Reinforced glass slab.§r Expensive, explosion-proof. Dark gray tint, faint structural lines visible.
|
||||||
|
tile.engineersdecor.treated_wood_floor.name=Treated Wood Floor
|
||||||
|
tile.engineersdecor.treated_wood_floor.help=§6Decorative floor tiles with texture variations.§r
|
||||||
#-----------------------------------------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------------------------------------
|
||||||
tile.engineersdecor.rebar_concrete_wall.name=Rebar Concrete Wall
|
tile.engineersdecor.rebar_concrete_wall.name=Rebar Concrete Wall
|
||||||
tile.engineersdecor.rebar_concrete_wall.help=§6Steel reinforced concrete wall.§r Expensive but Creeper-proof like obsidian.
|
tile.engineersdecor.rebar_concrete_wall.help=§6Steel reinforced concrete wall.§r Expensive but Creeper-proof like obsidian.
|
||||||
|
@ -155,6 +157,15 @@ tile.engineersdecor.small_mineral_smelter.help=§6High temperature, high insulat
|
||||||
Heats up mineral blocks to magma blocks, and finally to lava. Due to the \
|
Heats up mineral blocks to magma blocks, and finally to lava. Due to the \
|
||||||
miniturized device size the process is rather inefficient - much time and \
|
miniturized device size the process is rather inefficient - much time and \
|
||||||
energy is needed to liquefy a stone block.
|
energy is needed to liquefy a stone block.
|
||||||
|
tile.engineersdecor.small_solar_panel.name=Small Solar Panel
|
||||||
|
tile.engineersdecor.small_solar_panel.help=§6Produces a small amount of power when exposed to sunlight.§r\n\
|
||||||
|
Useful for charging LF capacitors in remote systems with low consumption. The \
|
||||||
|
internal charge pump circuit accumulates and frequently transfers RF. Production \
|
||||||
|
depends on day time and the weather.
|
||||||
|
tile.engineersdecor.small_tree_cutter.name=Small Tree Cutter
|
||||||
|
tile.engineersdecor.small_tree_cutter.help=§6Chops grown trees in front of it.§r\n\
|
||||||
|
Does not collect the lumbers. Deactivate with a redstone signal. \
|
||||||
|
Provide RF power to boost the cutting speed.
|
||||||
#-----------------------------------------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------------------------------------
|
||||||
tile.engineersdecor.sign_decor.name=Sign Plate (Engineer's decor)
|
tile.engineersdecor.sign_decor.name=Sign Plate (Engineer's decor)
|
||||||
tile.engineersdecor.sign_decor.help=§6This should not be craftable or visible in JEI. Used for creative tab and screenshots.
|
tile.engineersdecor.sign_decor.help=§6This should not be craftable or visible in JEI. Used for creative tab and screenshots.
|
||||||
|
|
|
@ -36,6 +36,8 @@ tile.engineersdecor.rebar_concrete_tile_slab.name=Железобетонная
|
||||||
tile.engineersdecor.rebar_concrete_tile_slab.help=§6Бетонная плитка, усиленная сталью.§r Дорогая, но взрывоустойчивая, как обсидиан.
|
tile.engineersdecor.rebar_concrete_tile_slab.help=§6Бетонная плитка, усиленная сталью.§r Дорогая, но взрывоустойчивая, как обсидиан.
|
||||||
tile.engineersdecor.panzerglass_slab.name=Плита из бронированного стекла
|
tile.engineersdecor.panzerglass_slab.name=Плита из бронированного стекла
|
||||||
tile.engineersdecor.panzerglass_slab.help=§6Усиленная стеклянная плита.§r Дорогая, взрывоустойчивая. Имеет тёмно-серый оттенок, слегка видны структурные линии.
|
tile.engineersdecor.panzerglass_slab.help=§6Усиленная стеклянная плита.§r Дорогая, взрывоустойчивая. Имеет тёмно-серый оттенок, слегка видны структурные линии.
|
||||||
|
tile.engineersdecor.treated_wood_floor.name=Treated Wood Floor
|
||||||
|
#tile.engineersdecor.treated_wood_floor.help=§6Decorative floor tiles with texture variations.§r
|
||||||
#-----------------------------------------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------------------------------------
|
||||||
tile.engineersdecor.rebar_concrete_wall.name=Железобетонная стена
|
tile.engineersdecor.rebar_concrete_wall.name=Железобетонная стена
|
||||||
tile.engineersdecor.rebar_concrete_wall.help=§6Стальная железобетонная стена.§r Дорогая, но взрывоустойчивая, как обсидиан.
|
tile.engineersdecor.rebar_concrete_wall.help=§6Стальная железобетонная стена.§r Дорогая, но взрывоустойчивая, как обсидиан.
|
||||||
|
@ -150,6 +152,15 @@ tile.engineersdecor.small_mineral_smelter.name=Small Mineral Melting Furnace
|
||||||
Heats up mineral blocks to magma blocks, and finally to lava. Due to the \
|
Heats up mineral blocks to magma blocks, and finally to lava. Due to the \
|
||||||
miniturized device size the process is rather inefficient - much time and \
|
miniturized device size the process is rather inefficient - much time and \
|
||||||
energy is needed to liquefy a stone block.
|
energy is needed to liquefy a stone block.
|
||||||
|
tile.engineersdecor.small_solar_panel.name=Small Solar Panel
|
||||||
|
#tile.engineersdecor.small_solar_panel.help=§6Produces a small amount of power when exposed to sunlight.§r\n\
|
||||||
|
Useful for charging LF capacitors in remote systems with low consumption. The \
|
||||||
|
internal charge pump circuit accumulates and frequently transfers RF. Production \
|
||||||
|
depends on day time and the weather.
|
||||||
|
tile.engineersdecor.small_tree_cutter.name=Small Tree Cutter
|
||||||
|
#tile.engineersdecor.small_tree_cutter.help=§6Chops grown trees in front of it.§r\n\
|
||||||
|
Does not collect the lumbers. Deactivate with a redstone signal. \
|
||||||
|
Provide RF power to boost the cutting speed.
|
||||||
#-----------------------------------------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------------------------------------
|
||||||
tile.engineersdecor.sign_decor.name=Табличка с надписью (Логотип Engineer's decor)
|
tile.engineersdecor.sign_decor.name=Табличка с надписью (Логотип Engineer's decor)
|
||||||
tile.engineersdecor.sign_decor.help=§Это не должно быть крафтовым или видимым в JEI. Используется для творческой вкладки и скриншотов.
|
tile.engineersdecor.sign_decor.help=§Это не должно быть крафтовым или видимым в JEI. Используется для творческой вкладки и скриншотов.
|
||||||
|
|
|
@ -36,6 +36,8 @@ tile.engineersdecor.rebar_concrete_tile_slab.name=Rebar Concrete Tile Slab
|
||||||
#tile.engineersdecor.rebar_concrete_tile_slab.help=§6Steel reinforced concrete tile slab.§r Expensive but Creeper-proof like obsidian.
|
#tile.engineersdecor.rebar_concrete_tile_slab.help=§6Steel reinforced concrete tile slab.§r Expensive but Creeper-proof like obsidian.
|
||||||
tile.engineersdecor.panzerglass_slab.name=Panzer Glass Slab
|
tile.engineersdecor.panzerglass_slab.name=Panzer Glass Slab
|
||||||
#tile.engineersdecor.panzerglass_slab.help=§6Reinforced glass slab.§r Expensive, explosion-proof. Dark gray tint, faint structural lines visible.
|
#tile.engineersdecor.panzerglass_slab.help=§6Reinforced glass slab.§r Expensive, explosion-proof. Dark gray tint, faint structural lines visible.
|
||||||
|
tile.engineersdecor.treated_wood_floor.name=Treated Wood Floor
|
||||||
|
#tile.engineersdecor.treated_wood_floor.help=§6Decorative floor tiles with texture variations.§r
|
||||||
#-----------------------------------------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------------------------------------
|
||||||
tile.engineersdecor.rebar_concrete_wall.name=钢筋混凝土墙
|
tile.engineersdecor.rebar_concrete_wall.name=钢筋混凝土墙
|
||||||
tile.engineersdecor.rebar_concrete_wall.help=§6钢筋混凝土墙.§r 昂贵,但像黑曜石一样防苦力怕.
|
tile.engineersdecor.rebar_concrete_wall.help=§6钢筋混凝土墙.§r 昂贵,但像黑曜石一样防苦力怕.
|
||||||
|
@ -153,6 +155,15 @@ tile.engineersdecor.small_mineral_smelter.name=Small Mineral Melting Furnace
|
||||||
Heats up mineral blocks to magma blocks, and finally to lava. Due to the \
|
Heats up mineral blocks to magma blocks, and finally to lava. Due to the \
|
||||||
miniturized device size the process is rather inefficient - much time and \
|
miniturized device size the process is rather inefficient - much time and \
|
||||||
energy is needed to liquefy a stone block.
|
energy is needed to liquefy a stone block.
|
||||||
|
tile.engineersdecor.small_solar_panel.name=Small Solar Panel
|
||||||
|
#tile.engineersdecor.small_solar_panel.help=§6Produces a small amount of power when exposed to sunlight.§r\n\
|
||||||
|
Useful for charging LF capacitors in remote systems with low consumption. The \
|
||||||
|
internal charge pump circuit accumulates and frequently transfers RF. Production \
|
||||||
|
depends on day time and the weather.
|
||||||
|
tile.engineersdecor.small_tree_cutter.name=Small Tree Cutter
|
||||||
|
#tile.engineersdecor.small_tree_cutter.help=§6Chops grown trees in front of it.§r\n\
|
||||||
|
Does not collect the lumbers. Deactivate with a redstone signal. \
|
||||||
|
Provide RF power to boost the cutting speed.
|
||||||
#-----------------------------------------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------------------------------------
|
||||||
tile.engineersdecor.sign_decor.name=Sign Plate (Engineer's decor)
|
tile.engineersdecor.sign_decor.name=Sign Plate (Engineer's decor)
|
||||||
#tile.engineersdecor.sign_decor.help=§6This should not be craftable or visible in JEI. Used for creative tab and screenshots.
|
#tile.engineersdecor.sign_decor.help=§6This should not be craftable or visible in JEI. Used for creative tab and screenshots.
|
||||||
|
|
|
@ -0,0 +1,196 @@
|
||||||
|
{
|
||||||
|
"parent": "block/cube",
|
||||||
|
"textures": {
|
||||||
|
"2": "engineersdecor:blocks/device/small_solar_panel_side",
|
||||||
|
"m": "engineersdecor:blocks/device/small_solar_panel_parts",
|
||||||
|
"particle": "engineersdecor:blocks/device/small_solar_panel_parts",
|
||||||
|
"tb": "engineersdecor:blocks/device/small_solar_panel_topbottom",
|
||||||
|
"p": "engineersdecor:blocks/device/small_solar_panel_panel"
|
||||||
|
},
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"from": [0, 0, 0],
|
||||||
|
"to": [16, 2, 16],
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [0, 14, 16, 16], "texture": "#2"},
|
||||||
|
"east": {"uv": [0, 14, 16, 16], "rotation": 180, "texture": "#2"},
|
||||||
|
"south": {"uv": [0, 14, 16, 16], "texture": "#2"},
|
||||||
|
"west": {"uv": [0, 14, 16, 16], "texture": "#2"},
|
||||||
|
"up": {"uv": [0, 0, 16, 16], "rotation": 90, "texture": "#tb"},
|
||||||
|
"down": {"uv": [0, 0, 16, 16], "rotation": 270, "texture": "#tb"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [1, 9.5, 0],
|
||||||
|
"to": [15, 11.5, 16],
|
||||||
|
"rotation": {"angle": -45, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [1, 4.5, 15, 6.5], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [0, 4.5, 16, 6.5], "texture": "#m"},
|
||||||
|
"south": {"uv": [1, 4.5, 15, 6.5], "texture": "#m"},
|
||||||
|
"west": {"uv": [0, 4.5, 16, 6.5], "texture": "#m"},
|
||||||
|
"up": {"uv": [1, 0, 15, 16], "texture": "#p"},
|
||||||
|
"down": {"uv": [1, 0, 15, 16], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6, 2, 11],
|
||||||
|
"to": [10, 8, 13],
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [6, 8, 10, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [3, 8, 5, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [6, 8, 10, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [11, 8, 13, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [6, 11, 10, 13], "texture": "#m"},
|
||||||
|
"down": {"uv": [6, 3, 10, 5], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6.5, 5.5, 9],
|
||||||
|
"to": [9.5, 9.5, 11],
|
||||||
|
"rotation": {"angle": -45, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [6.5, 6.5, 9.5, 10.5], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [5, 6.5, 7, 10.5], "texture": "#m"},
|
||||||
|
"south": {"uv": [6.5, 6.5, 9.5, 10.5], "texture": "#m"},
|
||||||
|
"west": {"uv": [9, 6.5, 11, 10.5], "texture": "#m"},
|
||||||
|
"up": {"uv": [6.5, 9, 9.5, 11], "texture": "#m"},
|
||||||
|
"down": {"uv": [6.5, 5, 9.5, 7], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [5, 9, 7],
|
||||||
|
"to": [11, 9.5, 9],
|
||||||
|
"rotation": {"angle": -45, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [5, 6.5, 11, 7], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [7, 6.5, 9, 7], "texture": "#m"},
|
||||||
|
"south": {"uv": [5, 6.5, 11, 7], "texture": "#m"},
|
||||||
|
"west": {"uv": [7, 6.5, 9, 7], "texture": "#m"},
|
||||||
|
"up": {"uv": [5, 7, 11, 9], "texture": "#m"},
|
||||||
|
"down": {"uv": [5, 7, 11, 9], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [2, 9, 3],
|
||||||
|
"to": [5, 9.5, 13],
|
||||||
|
"rotation": {"angle": -45, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [11, 6.5, 14, 7], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [3, 6.5, 13, 7], "texture": "#m"},
|
||||||
|
"south": {"uv": [2, 6.5, 5, 7], "texture": "#m"},
|
||||||
|
"west": {"uv": [3, 6.5, 13, 7], "texture": "#m"},
|
||||||
|
"up": {"uv": [2, 3, 5, 13], "texture": "#m"},
|
||||||
|
"down": {"uv": [2, 3, 5, 13], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [11, 9, 3],
|
||||||
|
"to": [14, 9.5, 13],
|
||||||
|
"rotation": {"angle": -45, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [2, 6.5, 5, 7], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [3, 6.5, 13, 7], "texture": "#m"},
|
||||||
|
"south": {"uv": [11, 6.5, 14, 7], "texture": "#m"},
|
||||||
|
"west": {"uv": [3, 6.5, 13, 7], "texture": "#m"},
|
||||||
|
"up": {"uv": [11, 3, 14, 13], "texture": "#m"},
|
||||||
|
"down": {"uv": [11, 3, 14, 13], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6.5, 5.5, 5],
|
||||||
|
"to": [9.5, 9.5, 7],
|
||||||
|
"rotation": {"angle": -45, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [6.5, 6.5, 9.5, 10.5], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [9, 6.5, 11, 10.5], "texture": "#m"},
|
||||||
|
"south": {"uv": [6.5, 6.5, 9.5, 10.5], "texture": "#m"},
|
||||||
|
"west": {"uv": [5, 6.5, 7, 10.5], "texture": "#m"},
|
||||||
|
"up": {"uv": [6.5, 5, 9.5, 7], "texture": "#m"},
|
||||||
|
"down": {"uv": [6.5, 9, 9.5, 11], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6, 2, 3],
|
||||||
|
"to": [10, 8, 5],
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [6, 8, 10, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [11, 8, 13, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [6, 8, 10, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [3, 8, 5, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [6, 3, 10, 5], "texture": "#m"},
|
||||||
|
"down": {"uv": [6, 11, 10, 13], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [2, 2, 3],
|
||||||
|
"to": [6, 3, 5],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [4, 8, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [10, 13, 14, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [11, 13, 13, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [2, 13, 6, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [3, 13, 5, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [2, 3, 6, 5], "texture": "#m"},
|
||||||
|
"down": {"uv": [2, 11, 6, 13], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [10, 2, 3],
|
||||||
|
"to": [14, 3, 5],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [12, 8, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [2, 13, 6, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [11, 13, 13, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [10, 13, 14, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [3, 13, 5, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [10, 3, 14, 5], "texture": "#m"},
|
||||||
|
"down": {"uv": [10, 11, 14, 13], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [10, 2, 11],
|
||||||
|
"to": [14, 3, 13],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [12, 8, 16]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [2, 13, 6, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [3, 13, 5, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [10, 13, 14, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [11, 13, 13, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [10, 11, 14, 13], "texture": "#m"},
|
||||||
|
"down": {"uv": [10, 3, 14, 5], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [2, 2, 11],
|
||||||
|
"to": [6, 3, 13],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [4, 8, 16]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [10, 13, 14, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [3, 13, 5, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [2, 13, 6, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [11, 13, 13, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [2, 11, 6, 13], "texture": "#m"},
|
||||||
|
"down": {"uv": [2, 3, 6, 5], "texture": "#m"}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"display": {
|
||||||
|
"thirdperson_righthand": {
|
||||||
|
"rotation": [85, 3, -10],
|
||||||
|
"translation": [1.75, -0.75, -2.25],
|
||||||
|
"scale": [0.35, 0.35, 0.35]
|
||||||
|
},
|
||||||
|
"ground": {
|
||||||
|
"translation": [0, -0.75, 0],
|
||||||
|
"scale": [0.2, 0.2, 0.2]
|
||||||
|
},
|
||||||
|
"gui": {
|
||||||
|
"rotation": [30, 225, 0],
|
||||||
|
"scale": [0.625, 0.625, 0.625]
|
||||||
|
},
|
||||||
|
"fixed": {
|
||||||
|
"scale": [0.5, 0.5, 0.5]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,196 @@
|
||||||
|
{
|
||||||
|
"parent": "block/cube",
|
||||||
|
"textures": {
|
||||||
|
"2": "engineersdecor:blocks/device/small_solar_panel_side",
|
||||||
|
"m": "engineersdecor:blocks/device/small_solar_panel_parts",
|
||||||
|
"particle": "engineersdecor:blocks/device/small_solar_panel_parts",
|
||||||
|
"tb": "engineersdecor:blocks/device/small_solar_panel_topbottom",
|
||||||
|
"p": "engineersdecor:blocks/device/small_solar_panel_panel"
|
||||||
|
},
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"from": [0, 0, 0],
|
||||||
|
"to": [16, 2, 16],
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [0, 14, 16, 16], "texture": "#2"},
|
||||||
|
"east": {"uv": [0, 14, 16, 16], "rotation": 180, "texture": "#2"},
|
||||||
|
"south": {"uv": [0, 14, 16, 16], "texture": "#2"},
|
||||||
|
"west": {"uv": [0, 14, 16, 16], "texture": "#2"},
|
||||||
|
"up": {"uv": [0, 0, 16, 16], "rotation": 90, "texture": "#tb"},
|
||||||
|
"down": {"uv": [0, 0, 16, 16], "rotation": 270, "texture": "#tb"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [1, 9.5, 0],
|
||||||
|
"to": [15, 11.5, 16],
|
||||||
|
"rotation": {"angle": -22.5, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [1, 4.5, 15, 6.5], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [0, 4.5, 16, 6.5], "texture": "#m"},
|
||||||
|
"south": {"uv": [1, 4.5, 15, 6.5], "texture": "#m"},
|
||||||
|
"west": {"uv": [0, 4.5, 16, 6.5], "texture": "#m"},
|
||||||
|
"up": {"uv": [1, 0, 15, 16], "texture": "#p"},
|
||||||
|
"down": {"uv": [1, 0, 15, 16], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6, 2, 11],
|
||||||
|
"to": [10, 8, 13],
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [6, 8, 10, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [3, 8, 5, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [6, 8, 10, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [11, 8, 13, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [6, 11, 10, 13], "texture": "#m"},
|
||||||
|
"down": {"uv": [6, 3, 10, 5], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6.5, 5.5, 9],
|
||||||
|
"to": [9.5, 9.5, 11],
|
||||||
|
"rotation": {"angle": -22.5, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [6.5, 6.5, 9.5, 10.5], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [5, 6.5, 7, 10.5], "texture": "#m"},
|
||||||
|
"south": {"uv": [6.5, 6.5, 9.5, 10.5], "texture": "#m"},
|
||||||
|
"west": {"uv": [9, 6.5, 11, 10.5], "texture": "#m"},
|
||||||
|
"up": {"uv": [6.5, 9, 9.5, 11], "texture": "#m"},
|
||||||
|
"down": {"uv": [6.5, 5, 9.5, 7], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [5, 9, 7],
|
||||||
|
"to": [11, 9.5, 9],
|
||||||
|
"rotation": {"angle": -22.5, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [5, 6.5, 11, 7], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [7, 6.5, 9, 7], "texture": "#m"},
|
||||||
|
"south": {"uv": [5, 6.5, 11, 7], "texture": "#m"},
|
||||||
|
"west": {"uv": [7, 6.5, 9, 7], "texture": "#m"},
|
||||||
|
"up": {"uv": [5, 7, 11, 9], "texture": "#m"},
|
||||||
|
"down": {"uv": [5, 7, 11, 9], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [2, 9, 3],
|
||||||
|
"to": [5, 9.5, 13],
|
||||||
|
"rotation": {"angle": -22.5, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [11, 6.5, 14, 7], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [3, 6.5, 13, 7], "texture": "#m"},
|
||||||
|
"south": {"uv": [2, 6.5, 5, 7], "texture": "#m"},
|
||||||
|
"west": {"uv": [3, 6.5, 13, 7], "texture": "#m"},
|
||||||
|
"up": {"uv": [2, 3, 5, 13], "texture": "#m"},
|
||||||
|
"down": {"uv": [2, 3, 5, 13], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [11, 9, 3],
|
||||||
|
"to": [14, 9.5, 13],
|
||||||
|
"rotation": {"angle": -22.5, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [2, 6.5, 5, 7], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [3, 6.5, 13, 7], "texture": "#m"},
|
||||||
|
"south": {"uv": [11, 6.5, 14, 7], "texture": "#m"},
|
||||||
|
"west": {"uv": [3, 6.5, 13, 7], "texture": "#m"},
|
||||||
|
"up": {"uv": [11, 3, 14, 13], "texture": "#m"},
|
||||||
|
"down": {"uv": [11, 3, 14, 13], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6.5, 5.5, 5],
|
||||||
|
"to": [9.5, 9.5, 7],
|
||||||
|
"rotation": {"angle": -22.5, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [6.5, 6.5, 9.5, 10.5], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [9, 6.5, 11, 10.5], "texture": "#m"},
|
||||||
|
"south": {"uv": [6.5, 6.5, 9.5, 10.5], "texture": "#m"},
|
||||||
|
"west": {"uv": [5, 6.5, 7, 10.5], "texture": "#m"},
|
||||||
|
"up": {"uv": [6.5, 5, 9.5, 7], "texture": "#m"},
|
||||||
|
"down": {"uv": [6.5, 9, 9.5, 11], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6, 2, 3],
|
||||||
|
"to": [10, 8, 5],
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [6, 8, 10, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [11, 8, 13, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [6, 8, 10, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [3, 8, 5, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [6, 3, 10, 5], "texture": "#m"},
|
||||||
|
"down": {"uv": [6, 11, 10, 13], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [2, 2, 3],
|
||||||
|
"to": [6, 3, 5],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [4, 8, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [10, 13, 14, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [11, 13, 13, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [2, 13, 6, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [3, 13, 5, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [2, 3, 6, 5], "texture": "#m"},
|
||||||
|
"down": {"uv": [2, 11, 6, 13], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [10, 2, 3],
|
||||||
|
"to": [14, 3, 5],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [12, 8, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [2, 13, 6, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [11, 13, 13, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [10, 13, 14, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [3, 13, 5, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [10, 3, 14, 5], "texture": "#m"},
|
||||||
|
"down": {"uv": [10, 11, 14, 13], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [10, 2, 11],
|
||||||
|
"to": [14, 3, 13],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [12, 8, 16]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [2, 13, 6, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [3, 13, 5, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [10, 13, 14, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [11, 13, 13, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [10, 11, 14, 13], "texture": "#m"},
|
||||||
|
"down": {"uv": [10, 3, 14, 5], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [2, 2, 11],
|
||||||
|
"to": [6, 3, 13],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [4, 8, 16]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [10, 13, 14, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [3, 13, 5, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [2, 13, 6, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [11, 13, 13, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [2, 11, 6, 13], "texture": "#m"},
|
||||||
|
"down": {"uv": [2, 3, 6, 5], "texture": "#m"}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"display": {
|
||||||
|
"thirdperson_righthand": {
|
||||||
|
"rotation": [85, 3, -10],
|
||||||
|
"translation": [1.75, -0.75, -2.25],
|
||||||
|
"scale": [0.35, 0.35, 0.35]
|
||||||
|
},
|
||||||
|
"ground": {
|
||||||
|
"translation": [0, -0.75, 0],
|
||||||
|
"scale": [0.2, 0.2, 0.2]
|
||||||
|
},
|
||||||
|
"gui": {
|
||||||
|
"rotation": [30, 225, 0],
|
||||||
|
"scale": [0.625, 0.625, 0.625]
|
||||||
|
},
|
||||||
|
"fixed": {
|
||||||
|
"scale": [0.5, 0.5, 0.5]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,196 @@
|
||||||
|
{
|
||||||
|
"parent": "block/cube",
|
||||||
|
"textures": {
|
||||||
|
"2": "engineersdecor:blocks/device/small_solar_panel_side",
|
||||||
|
"m": "engineersdecor:blocks/device/small_solar_panel_parts",
|
||||||
|
"particle": "engineersdecor:blocks/device/small_solar_panel_parts",
|
||||||
|
"tb": "engineersdecor:blocks/device/small_solar_panel_topbottom",
|
||||||
|
"p": "engineersdecor:blocks/device/small_solar_panel_panel"
|
||||||
|
},
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"from": [0, 0, 0],
|
||||||
|
"to": [16, 2, 16],
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [0, 14, 16, 16], "texture": "#2"},
|
||||||
|
"east": {"uv": [0, 14, 16, 16], "rotation": 180, "texture": "#2"},
|
||||||
|
"south": {"uv": [0, 14, 16, 16], "texture": "#2"},
|
||||||
|
"west": {"uv": [0, 14, 16, 16], "texture": "#2"},
|
||||||
|
"up": {"uv": [0, 0, 16, 16], "rotation": 90, "texture": "#tb"},
|
||||||
|
"down": {"uv": [0, 0, 16, 16], "rotation": 270, "texture": "#tb"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [1, 9.5, 0],
|
||||||
|
"to": [15, 11.5, 16],
|
||||||
|
"rotation": {"angle": 0, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [1, 4.5, 15, 6.5], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [0, 4.5, 16, 6.5], "texture": "#m"},
|
||||||
|
"south": {"uv": [1, 4.5, 15, 6.5], "texture": "#m"},
|
||||||
|
"west": {"uv": [0, 4.5, 16, 6.5], "texture": "#m"},
|
||||||
|
"up": {"uv": [1, 0, 15, 16], "texture": "#p"},
|
||||||
|
"down": {"uv": [1, 0, 15, 16], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6, 2, 11],
|
||||||
|
"to": [10, 8, 13],
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [6, 8, 10, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [3, 8, 5, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [6, 8, 10, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [11, 8, 13, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [6, 11, 10, 13], "texture": "#m"},
|
||||||
|
"down": {"uv": [6, 3, 10, 5], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6.5, 5.5, 9],
|
||||||
|
"to": [9.5, 9.5, 11],
|
||||||
|
"rotation": {"angle": 0, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [6.5, 6.5, 9.5, 10.5], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [5, 6.5, 7, 10.5], "texture": "#m"},
|
||||||
|
"south": {"uv": [6.5, 6.5, 9.5, 10.5], "texture": "#m"},
|
||||||
|
"west": {"uv": [9, 6.5, 11, 10.5], "texture": "#m"},
|
||||||
|
"up": {"uv": [6.5, 9, 9.5, 11], "texture": "#m"},
|
||||||
|
"down": {"uv": [6.5, 5, 9.5, 7], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [5, 9, 7],
|
||||||
|
"to": [11, 9.5, 9],
|
||||||
|
"rotation": {"angle": 0, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [5, 6.5, 11, 7], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [7, 6.5, 9, 7], "texture": "#m"},
|
||||||
|
"south": {"uv": [5, 6.5, 11, 7], "texture": "#m"},
|
||||||
|
"west": {"uv": [7, 6.5, 9, 7], "texture": "#m"},
|
||||||
|
"up": {"uv": [5, 7, 11, 9], "texture": "#m"},
|
||||||
|
"down": {"uv": [5, 7, 11, 9], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [2, 9, 3],
|
||||||
|
"to": [5, 9.5, 13],
|
||||||
|
"rotation": {"angle": 0, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [11, 6.5, 14, 7], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [3, 6.5, 13, 7], "texture": "#m"},
|
||||||
|
"south": {"uv": [2, 6.5, 5, 7], "texture": "#m"},
|
||||||
|
"west": {"uv": [3, 6.5, 13, 7], "texture": "#m"},
|
||||||
|
"up": {"uv": [2, 3, 5, 13], "texture": "#m"},
|
||||||
|
"down": {"uv": [2, 3, 5, 13], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [11, 9, 3],
|
||||||
|
"to": [14, 9.5, 13],
|
||||||
|
"rotation": {"angle": 0, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [2, 6.5, 5, 7], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [3, 6.5, 13, 7], "texture": "#m"},
|
||||||
|
"south": {"uv": [11, 6.5, 14, 7], "texture": "#m"},
|
||||||
|
"west": {"uv": [3, 6.5, 13, 7], "texture": "#m"},
|
||||||
|
"up": {"uv": [11, 3, 14, 13], "texture": "#m"},
|
||||||
|
"down": {"uv": [11, 3, 14, 13], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6.5, 5.5, 5],
|
||||||
|
"to": [9.5, 9.5, 7],
|
||||||
|
"rotation": {"angle": 0, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [6.5, 6.5, 9.5, 10.5], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [9, 6.5, 11, 10.5], "texture": "#m"},
|
||||||
|
"south": {"uv": [6.5, 6.5, 9.5, 10.5], "texture": "#m"},
|
||||||
|
"west": {"uv": [5, 6.5, 7, 10.5], "texture": "#m"},
|
||||||
|
"up": {"uv": [6.5, 5, 9.5, 7], "texture": "#m"},
|
||||||
|
"down": {"uv": [6.5, 9, 9.5, 11], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6, 2, 3],
|
||||||
|
"to": [10, 8, 5],
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [6, 8, 10, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [11, 8, 13, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [6, 8, 10, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [3, 8, 5, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [6, 3, 10, 5], "texture": "#m"},
|
||||||
|
"down": {"uv": [6, 11, 10, 13], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [2, 2, 3],
|
||||||
|
"to": [6, 3, 5],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [4, 8, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [10, 13, 14, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [11, 13, 13, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [2, 13, 6, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [3, 13, 5, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [2, 3, 6, 5], "texture": "#m"},
|
||||||
|
"down": {"uv": [2, 11, 6, 13], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [10, 2, 3],
|
||||||
|
"to": [14, 3, 5],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [12, 8, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [2, 13, 6, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [11, 13, 13, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [10, 13, 14, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [3, 13, 5, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [10, 3, 14, 5], "texture": "#m"},
|
||||||
|
"down": {"uv": [10, 11, 14, 13], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [10, 2, 11],
|
||||||
|
"to": [14, 3, 13],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [12, 8, 16]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [2, 13, 6, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [3, 13, 5, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [10, 13, 14, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [11, 13, 13, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [10, 11, 14, 13], "texture": "#m"},
|
||||||
|
"down": {"uv": [10, 3, 14, 5], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [2, 2, 11],
|
||||||
|
"to": [6, 3, 13],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [4, 8, 16]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [10, 13, 14, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [3, 13, 5, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [2, 13, 6, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [11, 13, 13, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [2, 11, 6, 13], "texture": "#m"},
|
||||||
|
"down": {"uv": [2, 3, 6, 5], "texture": "#m"}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"display": {
|
||||||
|
"thirdperson_righthand": {
|
||||||
|
"rotation": [85, 3, -10],
|
||||||
|
"translation": [1.75, -0.75, -2.25],
|
||||||
|
"scale": [0.35, 0.35, 0.35]
|
||||||
|
},
|
||||||
|
"ground": {
|
||||||
|
"translation": [0, -0.75, 0],
|
||||||
|
"scale": [0.2, 0.2, 0.2]
|
||||||
|
},
|
||||||
|
"gui": {
|
||||||
|
"rotation": [30, 225, 0],
|
||||||
|
"scale": [0.625, 0.625, 0.625]
|
||||||
|
},
|
||||||
|
"fixed": {
|
||||||
|
"scale": [0.5, 0.5, 0.5]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,196 @@
|
||||||
|
{
|
||||||
|
"parent": "block/cube",
|
||||||
|
"textures": {
|
||||||
|
"2": "engineersdecor:blocks/device/small_solar_panel_side",
|
||||||
|
"m": "engineersdecor:blocks/device/small_solar_panel_parts",
|
||||||
|
"particle": "engineersdecor:blocks/device/small_solar_panel_parts",
|
||||||
|
"tb": "engineersdecor:blocks/device/small_solar_panel_topbottom",
|
||||||
|
"p": "engineersdecor:blocks/device/small_solar_panel_panel"
|
||||||
|
},
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"from": [0, 0, 0],
|
||||||
|
"to": [16, 2, 16],
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [0, 14, 16, 16], "texture": "#2"},
|
||||||
|
"east": {"uv": [0, 14, 16, 16], "rotation": 180, "texture": "#2"},
|
||||||
|
"south": {"uv": [0, 14, 16, 16], "texture": "#2"},
|
||||||
|
"west": {"uv": [0, 14, 16, 16], "texture": "#2"},
|
||||||
|
"up": {"uv": [0, 0, 16, 16], "rotation": 90, "texture": "#tb"},
|
||||||
|
"down": {"uv": [0, 0, 16, 16], "rotation": 270, "texture": "#tb"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [1, 9.5, 0],
|
||||||
|
"to": [15, 11.5, 16],
|
||||||
|
"rotation": {"angle": 22.5, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [1, 4.5, 15, 6.5], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [0, 4.5, 16, 6.5], "texture": "#m"},
|
||||||
|
"south": {"uv": [1, 4.5, 15, 6.5], "texture": "#m"},
|
||||||
|
"west": {"uv": [0, 4.5, 16, 6.5], "texture": "#m"},
|
||||||
|
"up": {"uv": [1, 0, 15, 16], "texture": "#p"},
|
||||||
|
"down": {"uv": [1, 0, 15, 16], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6, 2, 11],
|
||||||
|
"to": [10, 8, 13],
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [6, 8, 10, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [3, 8, 5, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [6, 8, 10, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [11, 8, 13, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [6, 11, 10, 13], "texture": "#m"},
|
||||||
|
"down": {"uv": [6, 3, 10, 5], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6.5, 5.5, 9],
|
||||||
|
"to": [9.5, 9.5, 11],
|
||||||
|
"rotation": {"angle": 22.5, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [6.5, 6.5, 9.5, 10.5], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [5, 6.5, 7, 10.5], "texture": "#m"},
|
||||||
|
"south": {"uv": [6.5, 6.5, 9.5, 10.5], "texture": "#m"},
|
||||||
|
"west": {"uv": [9, 6.5, 11, 10.5], "texture": "#m"},
|
||||||
|
"up": {"uv": [6.5, 9, 9.5, 11], "texture": "#m"},
|
||||||
|
"down": {"uv": [6.5, 5, 9.5, 7], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [5, 9, 7],
|
||||||
|
"to": [11, 9.5, 9],
|
||||||
|
"rotation": {"angle": 22.5, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [5, 6.5, 11, 7], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [7, 6.5, 9, 7], "texture": "#m"},
|
||||||
|
"south": {"uv": [5, 6.5, 11, 7], "texture": "#m"},
|
||||||
|
"west": {"uv": [7, 6.5, 9, 7], "texture": "#m"},
|
||||||
|
"up": {"uv": [5, 7, 11, 9], "texture": "#m"},
|
||||||
|
"down": {"uv": [5, 7, 11, 9], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [2, 9, 3],
|
||||||
|
"to": [5, 9.5, 13],
|
||||||
|
"rotation": {"angle": 22.5, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [11, 6.5, 14, 7], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [3, 6.5, 13, 7], "texture": "#m"},
|
||||||
|
"south": {"uv": [2, 6.5, 5, 7], "texture": "#m"},
|
||||||
|
"west": {"uv": [3, 6.5, 13, 7], "texture": "#m"},
|
||||||
|
"up": {"uv": [2, 3, 5, 13], "texture": "#m"},
|
||||||
|
"down": {"uv": [2, 3, 5, 13], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [11, 9, 3],
|
||||||
|
"to": [14, 9.5, 13],
|
||||||
|
"rotation": {"angle": 22.5, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [2, 6.5, 5, 7], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [3, 6.5, 13, 7], "texture": "#m"},
|
||||||
|
"south": {"uv": [11, 6.5, 14, 7], "texture": "#m"},
|
||||||
|
"west": {"uv": [3, 6.5, 13, 7], "texture": "#m"},
|
||||||
|
"up": {"uv": [11, 3, 14, 13], "texture": "#m"},
|
||||||
|
"down": {"uv": [11, 3, 14, 13], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6.5, 5.5, 5],
|
||||||
|
"to": [9.5, 9.5, 7],
|
||||||
|
"rotation": {"angle": 22.5, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [6.5, 6.5, 9.5, 10.5], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [9, 6.5, 11, 10.5], "texture": "#m"},
|
||||||
|
"south": {"uv": [6.5, 6.5, 9.5, 10.5], "texture": "#m"},
|
||||||
|
"west": {"uv": [5, 6.5, 7, 10.5], "texture": "#m"},
|
||||||
|
"up": {"uv": [6.5, 5, 9.5, 7], "texture": "#m"},
|
||||||
|
"down": {"uv": [6.5, 9, 9.5, 11], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6, 2, 3],
|
||||||
|
"to": [10, 8, 5],
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [6, 8, 10, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [11, 8, 13, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [6, 8, 10, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [3, 8, 5, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [6, 3, 10, 5], "texture": "#m"},
|
||||||
|
"down": {"uv": [6, 11, 10, 13], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [2, 2, 3],
|
||||||
|
"to": [6, 3, 5],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [4, 8, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [10, 13, 14, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [11, 13, 13, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [2, 13, 6, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [3, 13, 5, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [2, 3, 6, 5], "texture": "#m"},
|
||||||
|
"down": {"uv": [2, 11, 6, 13], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [10, 2, 3],
|
||||||
|
"to": [14, 3, 5],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [12, 8, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [2, 13, 6, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [11, 13, 13, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [10, 13, 14, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [3, 13, 5, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [10, 3, 14, 5], "texture": "#m"},
|
||||||
|
"down": {"uv": [10, 11, 14, 13], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [10, 2, 11],
|
||||||
|
"to": [14, 3, 13],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [12, 8, 16]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [2, 13, 6, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [3, 13, 5, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [10, 13, 14, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [11, 13, 13, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [10, 11, 14, 13], "texture": "#m"},
|
||||||
|
"down": {"uv": [10, 3, 14, 5], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [2, 2, 11],
|
||||||
|
"to": [6, 3, 13],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [4, 8, 16]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [10, 13, 14, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [3, 13, 5, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [2, 13, 6, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [11, 13, 13, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [2, 11, 6, 13], "texture": "#m"},
|
||||||
|
"down": {"uv": [2, 3, 6, 5], "texture": "#m"}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"display": {
|
||||||
|
"thirdperson_righthand": {
|
||||||
|
"rotation": [85, 3, -10],
|
||||||
|
"translation": [1.75, -0.75, -2.25],
|
||||||
|
"scale": [0.35, 0.35, 0.35]
|
||||||
|
},
|
||||||
|
"ground": {
|
||||||
|
"translation": [0, -0.75, 0],
|
||||||
|
"scale": [0.2, 0.2, 0.2]
|
||||||
|
},
|
||||||
|
"gui": {
|
||||||
|
"rotation": [30, 225, 0],
|
||||||
|
"scale": [0.625, 0.625, 0.625]
|
||||||
|
},
|
||||||
|
"fixed": {
|
||||||
|
"scale": [0.5, 0.5, 0.5]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,196 @@
|
||||||
|
{
|
||||||
|
"parent": "block/cube",
|
||||||
|
"textures": {
|
||||||
|
"2": "engineersdecor:blocks/device/small_solar_panel_side",
|
||||||
|
"m": "engineersdecor:blocks/device/small_solar_panel_parts",
|
||||||
|
"particle": "engineersdecor:blocks/device/small_solar_panel_parts",
|
||||||
|
"tb": "engineersdecor:blocks/device/small_solar_panel_topbottom",
|
||||||
|
"p": "engineersdecor:blocks/device/small_solar_panel_panel"
|
||||||
|
},
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"from": [0, 0, 0],
|
||||||
|
"to": [16, 2, 16],
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [0, 14, 16, 16], "texture": "#2"},
|
||||||
|
"east": {"uv": [0, 14, 16, 16], "rotation": 180, "texture": "#2"},
|
||||||
|
"south": {"uv": [0, 14, 16, 16], "texture": "#2"},
|
||||||
|
"west": {"uv": [0, 14, 16, 16], "texture": "#2"},
|
||||||
|
"up": {"uv": [0, 0, 16, 16], "rotation": 90, "texture": "#tb"},
|
||||||
|
"down": {"uv": [0, 0, 16, 16], "rotation": 270, "texture": "#tb"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [1, 9.5, 0],
|
||||||
|
"to": [15, 11.5, 16],
|
||||||
|
"rotation": {"angle": 45, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [1, 4.5, 15, 6.5], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [0, 4.5, 16, 6.5], "texture": "#m"},
|
||||||
|
"south": {"uv": [1, 4.5, 15, 6.5], "texture": "#m"},
|
||||||
|
"west": {"uv": [0, 4.5, 16, 6.5], "texture": "#m"},
|
||||||
|
"up": {"uv": [1, 0, 15, 16], "texture": "#p"},
|
||||||
|
"down": {"uv": [1, 0, 15, 16], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6, 2, 11],
|
||||||
|
"to": [10, 8, 13],
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [6, 8, 10, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [3, 8, 5, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [6, 8, 10, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [11, 8, 13, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [6, 11, 10, 13], "texture": "#m"},
|
||||||
|
"down": {"uv": [6, 3, 10, 5], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6.5, 5.5, 9],
|
||||||
|
"to": [9.5, 9.5, 11],
|
||||||
|
"rotation": {"angle": 45, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [6.5, 6.5, 9.5, 10.5], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [5, 6.5, 7, 10.5], "texture": "#m"},
|
||||||
|
"south": {"uv": [6.5, 6.5, 9.5, 10.5], "texture": "#m"},
|
||||||
|
"west": {"uv": [9, 6.5, 11, 10.5], "texture": "#m"},
|
||||||
|
"up": {"uv": [6.5, 9, 9.5, 11], "texture": "#m"},
|
||||||
|
"down": {"uv": [6.5, 5, 9.5, 7], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [5, 9, 7],
|
||||||
|
"to": [11, 9.5, 9],
|
||||||
|
"rotation": {"angle": 45, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [5, 6.5, 11, 7], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [7, 6.5, 9, 7], "texture": "#m"},
|
||||||
|
"south": {"uv": [5, 6.5, 11, 7], "texture": "#m"},
|
||||||
|
"west": {"uv": [7, 6.5, 9, 7], "texture": "#m"},
|
||||||
|
"up": {"uv": [5, 7, 11, 9], "texture": "#m"},
|
||||||
|
"down": {"uv": [5, 7, 11, 9], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [2, 9, 3],
|
||||||
|
"to": [5, 9.5, 13],
|
||||||
|
"rotation": {"angle": 45, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [11, 6.5, 14, 7], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [3, 6.5, 13, 7], "texture": "#m"},
|
||||||
|
"south": {"uv": [2, 6.5, 5, 7], "texture": "#m"},
|
||||||
|
"west": {"uv": [3, 6.5, 13, 7], "texture": "#m"},
|
||||||
|
"up": {"uv": [2, 3, 5, 13], "texture": "#m"},
|
||||||
|
"down": {"uv": [2, 3, 5, 13], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [11, 9, 3],
|
||||||
|
"to": [14, 9.5, 13],
|
||||||
|
"rotation": {"angle": 45, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [2, 6.5, 5, 7], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [3, 6.5, 13, 7], "texture": "#m"},
|
||||||
|
"south": {"uv": [11, 6.5, 14, 7], "texture": "#m"},
|
||||||
|
"west": {"uv": [3, 6.5, 13, 7], "texture": "#m"},
|
||||||
|
"up": {"uv": [11, 3, 14, 13], "texture": "#m"},
|
||||||
|
"down": {"uv": [11, 3, 14, 13], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6.5, 5.5, 5],
|
||||||
|
"to": [9.5, 9.5, 7],
|
||||||
|
"rotation": {"angle": 45, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [6.5, 6.5, 9.5, 10.5], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [9, 6.5, 11, 10.5], "texture": "#m"},
|
||||||
|
"south": {"uv": [6.5, 6.5, 9.5, 10.5], "texture": "#m"},
|
||||||
|
"west": {"uv": [5, 6.5, 7, 10.5], "texture": "#m"},
|
||||||
|
"up": {"uv": [6.5, 5, 9.5, 7], "texture": "#m"},
|
||||||
|
"down": {"uv": [6.5, 9, 9.5, 11], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6, 2, 3],
|
||||||
|
"to": [10, 8, 5],
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [6, 8, 10, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [11, 8, 13, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [6, 8, 10, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [3, 8, 5, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [6, 3, 10, 5], "texture": "#m"},
|
||||||
|
"down": {"uv": [6, 11, 10, 13], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [2, 2, 3],
|
||||||
|
"to": [6, 3, 5],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [4, 8, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [10, 13, 14, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [11, 13, 13, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [2, 13, 6, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [3, 13, 5, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [2, 3, 6, 5], "texture": "#m"},
|
||||||
|
"down": {"uv": [2, 11, 6, 13], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [10, 2, 3],
|
||||||
|
"to": [14, 3, 5],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [12, 8, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [2, 13, 6, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [11, 13, 13, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [10, 13, 14, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [3, 13, 5, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [10, 3, 14, 5], "texture": "#m"},
|
||||||
|
"down": {"uv": [10, 11, 14, 13], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [10, 2, 11],
|
||||||
|
"to": [14, 3, 13],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [12, 8, 16]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [2, 13, 6, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [3, 13, 5, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [10, 13, 14, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [11, 13, 13, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [10, 11, 14, 13], "texture": "#m"},
|
||||||
|
"down": {"uv": [10, 3, 14, 5], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [2, 2, 11],
|
||||||
|
"to": [6, 3, 13],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [4, 8, 16]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [10, 13, 14, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [3, 13, 5, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [2, 13, 6, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [11, 13, 13, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [2, 11, 6, 13], "texture": "#m"},
|
||||||
|
"down": {"uv": [2, 3, 6, 5], "texture": "#m"}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"display": {
|
||||||
|
"thirdperson_righthand": {
|
||||||
|
"rotation": [85, 3, -10],
|
||||||
|
"translation": [1.75, -0.75, -2.25],
|
||||||
|
"scale": [0.35, 0.35, 0.35]
|
||||||
|
},
|
||||||
|
"ground": {
|
||||||
|
"translation": [0, -0.75, 0],
|
||||||
|
"scale": [0.2, 0.2, 0.2]
|
||||||
|
},
|
||||||
|
"gui": {
|
||||||
|
"rotation": [30, 225, 0],
|
||||||
|
"scale": [0.625, 0.625, 0.625]
|
||||||
|
},
|
||||||
|
"fixed": {
|
||||||
|
"scale": [0.5, 0.5, 0.5]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,217 @@
|
||||||
|
{
|
||||||
|
"parent": "block/cube",
|
||||||
|
"textures": {
|
||||||
|
"2": "engineersdecor:blocks/device/tree_cutter_side",
|
||||||
|
"3": "engineersdecor:blocks/device/tree_cutter_top",
|
||||||
|
"particle": "engineersdecor:blocks/device/tree_cutter_side",
|
||||||
|
"b": "engineersdecor:blocks/device/tree_cutter_blade_off",
|
||||||
|
"top": "engineersdecor:blocks/device/tree_cutter_bottom"
|
||||||
|
},
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"from": [0, 0, 0],
|
||||||
|
"to": [16, 3, 16],
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [0, 13, 16, 16], "texture": "#2"},
|
||||||
|
"east": {"uv": [0, 13, 16, 16], "texture": "#2"},
|
||||||
|
"south": {"uv": [0, 13, 16, 16], "texture": "#2"},
|
||||||
|
"west": {"uv": [0, 13, 16, 16], "texture": "#2"},
|
||||||
|
"up": {"uv": [0, 0, 16, 16], "texture": "#3"},
|
||||||
|
"down": {"uv": [0, 0, 16, 16], "texture": "#top"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [0, 3, 0],
|
||||||
|
"to": [3, 8, 16],
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [13, 0, 16, 5], "texture": "#2"},
|
||||||
|
"east": {"uv": [0, 3, 16, 8], "texture": "#2"},
|
||||||
|
"south": {"uv": [0, 8, 3, 13], "texture": "#2"},
|
||||||
|
"west": {"uv": [0, 8, 16, 13], "texture": "#2"},
|
||||||
|
"up": {"uv": [0, 0, 3, 16], "texture": "#3"},
|
||||||
|
"down": {"uv": [0, 0, 3, 16], "texture": "#top"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [3, 3, 13],
|
||||||
|
"to": [16, 8, 16],
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [0, 3, 13, 8], "texture": "#2"},
|
||||||
|
"east": {"uv": [0, 8, 3, 13], "texture": "#2"},
|
||||||
|
"south": {"uv": [3, 8, 16, 13], "texture": "#2"},
|
||||||
|
"west": {"uv": [13, 8, 16, 13], "texture": "#b"},
|
||||||
|
"up": {"uv": [3, 13, 16, 16], "texture": "#3"},
|
||||||
|
"down": {"uv": [3, 0, 16, 3], "texture": "#top"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [15, 3, 0],
|
||||||
|
"to": [16, 6, 13],
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [0, 10, 1, 13], "texture": "#2"},
|
||||||
|
"east": {"uv": [3, 10, 16, 13], "texture": "#2"},
|
||||||
|
"south": {"uv": [15, 10, 16, 13], "texture": "#b"},
|
||||||
|
"west": {"uv": [0, 0, 13, 3], "texture": "#2"},
|
||||||
|
"up": {"uv": [15, 0, 16, 13], "texture": "#3"},
|
||||||
|
"down": {"uv": [15, 3, 16, 16], "texture": "#top"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [3, 7, 0],
|
||||||
|
"to": [5, 8, 13],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [10, 13, 5]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [11, 8, 13, 9], "texture": "#2"},
|
||||||
|
"east": {"uv": [3, 8, 16, 9], "texture": "#2"},
|
||||||
|
"south": {"uv": [3, 8, 5, 9], "texture": "#b"},
|
||||||
|
"west": {"uv": [0, 8, 13, 9], "texture": "#b"},
|
||||||
|
"up": {"uv": [3, 0, 5, 13], "texture": "#3"},
|
||||||
|
"down": {"uv": [3, 3, 5, 16], "texture": "#b"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [5, 6, 12],
|
||||||
|
"to": [16, 8, 13],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [11, 13, 5]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [0, 0, 11, 2], "texture": "#2"},
|
||||||
|
"east": {"uv": [3, 8, 4, 10], "texture": "#2"},
|
||||||
|
"south": {"uv": [5, 8, 16, 10], "texture": "#b"},
|
||||||
|
"west": {"uv": [12, 8, 13, 10], "texture": "#b"},
|
||||||
|
"up": {"uv": [5, 12, 16, 13], "texture": "#3"},
|
||||||
|
"down": {"uv": [5, 3, 16, 4], "texture": "#top"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [5, 4.5, 4],
|
||||||
|
"to": [13, 5, 12],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [8, 7.5, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [3, 11, 11, 11.5], "texture": "#b"},
|
||||||
|
"east": {"uv": [4, 11, 12, 11.5], "texture": "#b"},
|
||||||
|
"south": {"uv": [5, 11, 13, 11.5], "texture": "#b"},
|
||||||
|
"west": {"uv": [4, 11, 12, 11.5], "texture": "#b"},
|
||||||
|
"up": {"uv": [5, 4, 13, 12], "texture": "#b"},
|
||||||
|
"down": {"uv": [5, 4, 13, 12], "texture": "#b"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [8, 5, 7],
|
||||||
|
"to": [10, 5.5, 9],
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [6, 10.5, 8, 11], "texture": "#2"},
|
||||||
|
"east": {"uv": [7, 10.5, 9, 11], "texture": "#b"},
|
||||||
|
"south": {"uv": [8, 10.5, 10, 11], "texture": "#b"},
|
||||||
|
"west": {"uv": [7, 10.5, 9, 11], "texture": "#b"},
|
||||||
|
"up": {"uv": [8, 7, 10, 9], "texture": "#b"},
|
||||||
|
"down": {"uv": [8, 7, 10, 9], "texture": "#b"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [8, 4, 7],
|
||||||
|
"to": [10, 4.5, 9],
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [6, 11.5, 8, 12], "texture": "#b"},
|
||||||
|
"east": {"uv": [7, 11.5, 9, 12], "texture": "#b"},
|
||||||
|
"south": {"uv": [8, 11.5, 10, 12], "texture": "#b"},
|
||||||
|
"west": {"uv": [7, 11.5, 9, 12], "texture": "#b"},
|
||||||
|
"up": {"uv": [8, 7, 10, 9], "texture": "#b"},
|
||||||
|
"down": {"uv": [8, 7, 10, 9], "texture": "#b"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [3, 3.5, 7],
|
||||||
|
"to": [10, 4, 9],
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [8, 6, 15, 6.5], "texture": "#2"},
|
||||||
|
"east": {"uv": [7, 12, 9, 12.5], "texture": "#2"},
|
||||||
|
"south": {"uv": [3, 12, 10, 12.5], "texture": "#2"},
|
||||||
|
"west": {"uv": [7, 12, 9, 12.5], "texture": "#2"},
|
||||||
|
"up": {"uv": [3, 7, 10, 9], "texture": "#2"},
|
||||||
|
"down": {"uv": [3, 7, 10, 9], "texture": "#2"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [3, 5.5, 7],
|
||||||
|
"to": [10, 6, 9],
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [6, 10, 13, 10.5], "texture": "#2"},
|
||||||
|
"east": {"uv": [7, 10, 9, 10.5], "texture": "#2"},
|
||||||
|
"south": {"uv": [3, 10, 10, 10.5], "texture": "#2"},
|
||||||
|
"west": {"uv": [7, 10, 9, 10.5], "texture": "#2"},
|
||||||
|
"up": {"uv": [9, 0, 16, 2], "texture": "#2"},
|
||||||
|
"down": {"uv": [3, 7, 10, 9], "texture": "#2"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6, 4.5, 3],
|
||||||
|
"to": [12, 5, 4],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [8, 7.5, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [4, 11, 10, 11.5], "texture": "#b"},
|
||||||
|
"east": {"uv": [12, 11, 13, 11.5], "texture": "#b"},
|
||||||
|
"south": {"uv": [6, 11, 12, 11.5], "texture": "#b"},
|
||||||
|
"west": {"uv": [3, 11, 4, 11.5], "texture": "#b"},
|
||||||
|
"up": {"uv": [6, 3, 12, 4], "texture": "#b"},
|
||||||
|
"down": {"uv": [6, 12, 12, 13], "texture": "#b"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [4, 4.5, 5],
|
||||||
|
"to": [5, 5, 11],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [8, 7.5, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [11, 11, 12, 11.5], "texture": "#b"},
|
||||||
|
"east": {"uv": [5, 11, 11, 11.5], "texture": "#b"},
|
||||||
|
"south": {"uv": [4, 11, 5, 11.5], "texture": "#b"},
|
||||||
|
"west": {"uv": [5, 11, 11, 11.5], "texture": "#b"},
|
||||||
|
"up": {"uv": [4, 5, 5, 11], "texture": "#b"},
|
||||||
|
"down": {"uv": [4, 5, 5, 11], "texture": "#b"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [13, 4.5, 5],
|
||||||
|
"to": [14, 5, 11],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [8, 7.5, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [2, 11, 3, 11.5], "texture": "#b"},
|
||||||
|
"east": {"uv": [5, 11, 11, 11.5], "texture": "#b"},
|
||||||
|
"south": {"uv": [13, 11, 14, 11.5], "texture": "#b"},
|
||||||
|
"west": {"uv": [5, 11, 11, 11.5], "texture": "#b"},
|
||||||
|
"up": {"uv": [13, 5, 14, 11], "texture": "#b"},
|
||||||
|
"down": {"uv": [13, 5, 14, 11], "texture": "#b"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6, 4.5, 12],
|
||||||
|
"to": [12, 5, 13],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [8, 7.5, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [4, 11, 10, 11.5], "texture": "#b"},
|
||||||
|
"east": {"uv": [3, 11, 4, 11.5], "texture": "#b"},
|
||||||
|
"south": {"uv": [6, 11, 12, 11.5], "texture": "#b"},
|
||||||
|
"west": {"uv": [12, 11, 13, 11.5], "texture": "#b"},
|
||||||
|
"up": {"uv": [6, 12, 12, 13], "texture": "#b"},
|
||||||
|
"down": {"uv": [6, 3, 12, 4], "texture": "#b"}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"display": {
|
||||||
|
"thirdperson_righthand": {
|
||||||
|
"rotation": [85, 3, -10],
|
||||||
|
"translation": [1.75, -0.75, -2.25],
|
||||||
|
"scale": [0.35, 0.35, 0.35]
|
||||||
|
},
|
||||||
|
"ground": {
|
||||||
|
"translation": [0, -0.75, 0],
|
||||||
|
"scale": [0.2, 0.2, 0.2]
|
||||||
|
},
|
||||||
|
"gui": {
|
||||||
|
"rotation": [30, 225, 0],
|
||||||
|
"scale": [0.625, 0.625, 0.625]
|
||||||
|
},
|
||||||
|
"fixed": {
|
||||||
|
"scale": [0.5, 0.5, 0.5]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,221 @@
|
||||||
|
{
|
||||||
|
"parent": "block/cube",
|
||||||
|
"textures": {
|
||||||
|
"2": "engineersdecor:blocks/device/tree_cutter_side",
|
||||||
|
"3": "engineersdecor:blocks/device/tree_cutter_top",
|
||||||
|
"particle": "engineersdecor:blocks/device/tree_cutter_side",
|
||||||
|
"b": "engineersdecor:blocks/device/tree_cutter_blade",
|
||||||
|
"top": "engineersdecor:blocks/device/tree_cutter_bottom"
|
||||||
|
},
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"from": [0, 0, 0],
|
||||||
|
"to": [16, 3, 16],
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [0, 13, 16, 16], "texture": "#2"},
|
||||||
|
"east": {"uv": [0, 13, 16, 16], "texture": "#2"},
|
||||||
|
"south": {"uv": [0, 13, 16, 16], "texture": "#2"},
|
||||||
|
"west": {"uv": [0, 13, 16, 16], "texture": "#2"},
|
||||||
|
"up": {"uv": [0, 0, 16, 16], "texture": "#3"},
|
||||||
|
"down": {"uv": [0, 0, 16, 16], "texture": "#top"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [0, 3, 0],
|
||||||
|
"to": [3, 8, 16],
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [13, 0, 16, 5], "texture": "#2"},
|
||||||
|
"east": {"uv": [0, 3, 16, 8], "texture": "#2"},
|
||||||
|
"south": {"uv": [0, 8, 3, 13], "texture": "#2"},
|
||||||
|
"west": {"uv": [0, 8, 16, 13], "texture": "#2"},
|
||||||
|
"up": {"uv": [0, 0, 3, 16], "texture": "#3"},
|
||||||
|
"down": {"uv": [0, 0, 3, 16], "texture": "#top"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [3, 3, 13],
|
||||||
|
"to": [16, 8, 16],
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [0, 3, 13, 8], "texture": "#2"},
|
||||||
|
"east": {"uv": [0, 8, 3, 13], "texture": "#2"},
|
||||||
|
"south": {"uv": [3, 8, 16, 13], "texture": "#2"},
|
||||||
|
"west": {"uv": [13, 8, 16, 13], "texture": "#b"},
|
||||||
|
"up": {"uv": [3, 13, 16, 16], "texture": "#3"},
|
||||||
|
"down": {"uv": [3, 0, 16, 3], "texture": "#top"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [15, 3, 0],
|
||||||
|
"to": [16, 6, 13],
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [0, 10, 1, 13], "texture": "#2"},
|
||||||
|
"east": {"uv": [3, 10, 16, 13], "texture": "#2"},
|
||||||
|
"south": {"uv": [15, 10, 16, 13], "texture": "#b"},
|
||||||
|
"west": {"uv": [0, 0, 13, 3], "texture": "#2"},
|
||||||
|
"up": {"uv": [15, 0, 16, 13], "texture": "#3"},
|
||||||
|
"down": {"uv": [15, 3, 16, 16], "texture": "#top"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [3, 7, 0],
|
||||||
|
"to": [5, 8, 13],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [10, 13, 5]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [11, 8, 13, 9], "texture": "#2"},
|
||||||
|
"east": {"uv": [3, 8, 16, 9], "texture": "#2"},
|
||||||
|
"south": {"uv": [3, 8, 5, 9], "texture": "#b"},
|
||||||
|
"west": {"uv": [0, 8, 13, 9], "texture": "#b"},
|
||||||
|
"up": {"uv": [3, 0, 5, 13], "texture": "#3"},
|
||||||
|
"down": {"uv": [3, 3, 5, 16], "texture": "#b"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [5, 6, 12],
|
||||||
|
"to": [16, 8, 13],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [11, 13, 5]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [0, 0, 11, 2], "texture": "#2"},
|
||||||
|
"east": {"uv": [3, 8, 4, 10], "texture": "#2"},
|
||||||
|
"south": {"uv": [5, 8, 16, 10], "texture": "#b"},
|
||||||
|
"west": {"uv": [12, 8, 13, 10], "texture": "#b"},
|
||||||
|
"up": {"uv": [5, 12, 16, 13], "texture": "#3"},
|
||||||
|
"down": {"uv": [5, 3, 16, 4], "texture": "#top"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [5, 4.5, -3],
|
||||||
|
"to": [13, 5, 5],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [8, 7.5, 1]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [5, 13, 13, 13.5], "texture": "#b"},
|
||||||
|
"east": {"uv": [11, 11, 16, 11.5], "texture": "#b"},
|
||||||
|
"south": {"uv": [5, 11, 13, 11.5], "texture": "#b"},
|
||||||
|
"west": {"uv": [0, 11, 5, 11.5], "texture": "#b"},
|
||||||
|
"up": {"uv": [5, 4, 13, 12], "texture": "#b"},
|
||||||
|
"down": {"uv": [5, 4, 13, 12], "texture": "#b"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [8, 5, 0],
|
||||||
|
"to": [10, 5.5, 2],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 1]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [6, 10.5, 8, 11], "texture": "#2"},
|
||||||
|
"east": {"uv": [14, 10.5, 16, 11], "texture": "#b"},
|
||||||
|
"south": {"uv": [8, 10.5, 10, 11], "texture": "#b"},
|
||||||
|
"west": {"uv": [0, 10.5, 2, 11], "texture": "#b"},
|
||||||
|
"up": {"uv": [8, 0, 10, 2], "texture": "#b"},
|
||||||
|
"down": {"uv": [8, 14, 10, 16], "texture": "#b"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [8, 4, 0],
|
||||||
|
"to": [10, 4.5, 2],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 1]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [6, 11.5, 8, 12], "texture": "#b"},
|
||||||
|
"east": {"uv": [14, 11.5, 16, 12], "texture": "#b"},
|
||||||
|
"south": {"uv": [8, 11.5, 10, 12], "texture": "#b"},
|
||||||
|
"west": {"uv": [0, 11.5, 2, 12], "texture": "#b"},
|
||||||
|
"up": {"uv": [8, 0, 10, 2], "texture": "#b"},
|
||||||
|
"down": {"uv": [8, 14, 10, 16], "texture": "#b"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [3, 3.5, 0],
|
||||||
|
"to": [10, 4, 2],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 1]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [8, 6, 15, 6.5], "texture": "#2"},
|
||||||
|
"east": {"uv": [7, 12, 9, 12.5], "texture": "#2"},
|
||||||
|
"south": {"uv": [3, 12, 10, 12.5], "texture": "#2"},
|
||||||
|
"west": {"uv": [7, 12, 9, 12.5], "texture": "#2"},
|
||||||
|
"up": {"uv": [3, 7, 10, 9], "texture": "#2"},
|
||||||
|
"down": {"uv": [3, 7, 10, 9], "texture": "#2"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [3, 5.5, 0],
|
||||||
|
"to": [10, 6, 2],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 1]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [6, 10, 13, 10.5], "texture": "#2"},
|
||||||
|
"east": {"uv": [7, 10, 9, 10.5], "texture": "#2"},
|
||||||
|
"south": {"uv": [3, 10, 10, 10.5], "texture": "#2"},
|
||||||
|
"west": {"uv": [7, 10, 9, 10.5], "texture": "#2"},
|
||||||
|
"up": {"uv": [9, 0, 16, 2], "texture": "#2"},
|
||||||
|
"down": {"uv": [3, 7, 10, 9], "texture": "#2"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6, 4.5, -4],
|
||||||
|
"to": [12, 5, -3],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [8, 7.5, 1]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [7, 12, 13, 12.5], "texture": "#b"},
|
||||||
|
"east": {"uv": [16, 11, 16, 11.5], "texture": "#b"},
|
||||||
|
"south": {"uv": [6, 11, 12, 11.5], "texture": "#b"},
|
||||||
|
"west": {"uv": [0, 11, 0, 11.5], "texture": "#b"},
|
||||||
|
"up": {"uv": [6, 12, 12, 13], "texture": "#b"},
|
||||||
|
"down": {"uv": [6, 3, 12, 4], "texture": "#b"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [4, 4.5, -2],
|
||||||
|
"to": [5, 5, 4],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [8, 7.5, 1]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [11, 12, 12, 12.5], "texture": "#b"},
|
||||||
|
"east": {"uv": [12, 11, 16, 11.5], "texture": "#b"},
|
||||||
|
"south": {"uv": [4, 11, 5, 11.5], "texture": "#b"},
|
||||||
|
"west": {"uv": [0, 11, 4, 11.5], "texture": "#b"},
|
||||||
|
"up": {"uv": [4, 4, 5, 12], "texture": "#b"},
|
||||||
|
"down": {"uv": [4, 5, 5, 11], "texture": "#b"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [13, 4.5, -2],
|
||||||
|
"to": [14, 5, 4],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [8, 7.5, 1]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [2, 11, 3, 11.5], "texture": "#b"},
|
||||||
|
"east": {"uv": [6, 12, 10, 12.5], "texture": "#b"},
|
||||||
|
"south": {"uv": [13, 11, 14, 11.5], "texture": "#b"},
|
||||||
|
"west": {"uv": [0, 11, 4, 11.5], "texture": "#b"},
|
||||||
|
"up": {"uv": [13, 5, 14, 11], "texture": "#b"},
|
||||||
|
"down": {"uv": [13, 5, 14, 11], "texture": "#b"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6, 4.5, 5],
|
||||||
|
"to": [12, 5, 6],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [8, 7.5, 1]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [4, 11, 10, 11.5], "texture": "#b"},
|
||||||
|
"east": {"uv": [10, 11, 11, 11.5], "texture": "#b"},
|
||||||
|
"south": {"uv": [6, 11, 12, 11.5], "texture": "#b"},
|
||||||
|
"west": {"uv": [5, 11, 6, 11.5], "texture": "#b"},
|
||||||
|
"up": {"uv": [6, 12, 12, 13], "texture": "#b"},
|
||||||
|
"down": {"uv": [6, 10, 12, 11], "texture": "#b"}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"display": {
|
||||||
|
"thirdperson_righthand": {
|
||||||
|
"rotation": [85, 3, -10],
|
||||||
|
"translation": [1.75, -0.75, -2.25],
|
||||||
|
"scale": [0.35, 0.35, 0.35]
|
||||||
|
},
|
||||||
|
"ground": {
|
||||||
|
"translation": [0, -0.75, 0],
|
||||||
|
"scale": [0.2, 0.2, 0.2]
|
||||||
|
},
|
||||||
|
"gui": {
|
||||||
|
"rotation": [30, 225, 0],
|
||||||
|
"scale": [0.625, 0.625, 0.625]
|
||||||
|
},
|
||||||
|
"fixed": {
|
||||||
|
"scale": [0.5, 0.5, 0.5]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,5 +1,6 @@
|
||||||
{
|
{
|
||||||
"parent": "block/cube",
|
"parent": "block/cube",
|
||||||
|
"ambientocclusion": false,
|
||||||
"textures": {
|
"textures": {
|
||||||
"glass": "engineersdecor:blocks/glass/window_glass_texture"
|
"glass": "engineersdecor:blocks/glass/window_glass_texture"
|
||||||
},
|
},
|
||||||
|
|
|
@ -31,6 +31,10 @@
|
||||||
"ingredient": { "type": "forge:ore_dict", "ore": "blockSteel" },
|
"ingredient": { "type": "forge:ore_dict", "ore": "blockSteel" },
|
||||||
"name": "blockSteel"
|
"name": "blockSteel"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"ingredient": { "type": "forge:ore_dict", "ore": "blockLead" },
|
||||||
|
"name": "blockLead"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"ingredient": { "type": "forge:ore_dict", "ore": "plateIron" },
|
"ingredient": { "type": "forge:ore_dict", "ore": "plateIron" },
|
||||||
"name": "plateIron"
|
"name": "plateIron"
|
||||||
|
@ -39,6 +43,10 @@
|
||||||
"ingredient": { "type": "forge:ore_dict", "ore": "ingotSteel" },
|
"ingredient": { "type": "forge:ore_dict", "ore": "ingotSteel" },
|
||||||
"name": "ingotSteel"
|
"name": "ingotSteel"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"ingredient": { "type": "forge:ore_dict", "ore": "ingotLead" },
|
||||||
|
"name": "ingotLead"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"ingredient": { "type": "forge:ore_dict", "ore": "plateSteel" },
|
"ingredient": { "type": "forge:ore_dict", "ore": "plateSteel" },
|
||||||
"name": "plateSteel"
|
"name": "plateSteel"
|
||||||
|
|
|
@ -0,0 +1,37 @@
|
||||||
|
{
|
||||||
|
"conditions": [
|
||||||
|
{
|
||||||
|
"type": "engineersdecor:grc",
|
||||||
|
"result": "engineersdecor:small_solar_panel",
|
||||||
|
"required": ["immersiveengineering:metal_device1"]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type": "minecraft:crafting_shaped",
|
||||||
|
"pattern": [
|
||||||
|
"QQQ",
|
||||||
|
" S ",
|
||||||
|
"LRL"
|
||||||
|
],
|
||||||
|
"key": {
|
||||||
|
"Q": {
|
||||||
|
"item": "minecraft:quartz",
|
||||||
|
"data": 0
|
||||||
|
},
|
||||||
|
"S": {
|
||||||
|
"item": "#ingotSteel",
|
||||||
|
"data": 0
|
||||||
|
},
|
||||||
|
"R": {
|
||||||
|
"item": "minecraft:redstone_block",
|
||||||
|
"data": 0
|
||||||
|
},
|
||||||
|
"L": {
|
||||||
|
"item": "#blockLead",
|
||||||
|
"data": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"result": {
|
||||||
|
"item": "engineersdecor:small_solar_panel",
|
||||||
|
"count": 1
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,41 @@
|
||||||
|
{
|
||||||
|
"conditions": [
|
||||||
|
{
|
||||||
|
"type": "engineersdecor:grc",
|
||||||
|
"result": "engineersdecor:small_tree_cutter",
|
||||||
|
"required": ["immersiveengineering:material"]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type": "minecraft:crafting_shaped",
|
||||||
|
"pattern": [
|
||||||
|
"PPP",
|
||||||
|
"PAO",
|
||||||
|
"CRC"
|
||||||
|
],
|
||||||
|
"key": {
|
||||||
|
"O": {
|
||||||
|
"item": "minecraft:observer",
|
||||||
|
"data": 0
|
||||||
|
},
|
||||||
|
"P": {
|
||||||
|
"item": "#plateAnyFerroMetal",
|
||||||
|
"data": 0
|
||||||
|
},
|
||||||
|
"A": {
|
||||||
|
"item": "minecraft:iron_axe",
|
||||||
|
"data": 0
|
||||||
|
},
|
||||||
|
"R": {
|
||||||
|
"item": "minecraft:redstone_block",
|
||||||
|
"data": 0
|
||||||
|
},
|
||||||
|
"C": {
|
||||||
|
"item": "#anyMechanicalComponent",
|
||||||
|
"data": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"result": {
|
||||||
|
"item": "engineersdecor:small_tree_cutter",
|
||||||
|
"count": 1
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,24 @@
|
||||||
|
{
|
||||||
|
"conditions": [
|
||||||
|
{
|
||||||
|
"type": "engineersdecor:grc",
|
||||||
|
"result": "engineersdecor:treated_wood_floor",
|
||||||
|
"required": ["immersiveengineering:material"]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type": "minecraft:crafting_shaped",
|
||||||
|
"pattern": [
|
||||||
|
"SSS",
|
||||||
|
"SSS"
|
||||||
|
],
|
||||||
|
"key": {
|
||||||
|
"S": {
|
||||||
|
"item": "#slabTreatedWood",
|
||||||
|
"data": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"result": {
|
||||||
|
"item": "engineersdecor:treated_wood_floor",
|
||||||
|
"count": 1
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,38 @@
|
||||||
|
{
|
||||||
|
"conditions": [
|
||||||
|
{
|
||||||
|
"type": "engineersdecor:grc",
|
||||||
|
"result": "engineersdecor:small_mineral_smelter",
|
||||||
|
"required": ["engineersdecor:panzerglass_block"],
|
||||||
|
"missing": ["immersiveengineering:metal_device1"]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type": "minecraft:crafting_shaped",
|
||||||
|
"pattern": [
|
||||||
|
"SOS",
|
||||||
|
"GBO",
|
||||||
|
"SOS"
|
||||||
|
],
|
||||||
|
"key": {
|
||||||
|
"G": {
|
||||||
|
"item": "engineersdecor:panzerglass_block",
|
||||||
|
"data": 0
|
||||||
|
},
|
||||||
|
"S": {
|
||||||
|
"item": "#ingotIron",
|
||||||
|
"data": 0
|
||||||
|
},
|
||||||
|
"B": {
|
||||||
|
"item": "#anyLavaItem",
|
||||||
|
"data": 0
|
||||||
|
},
|
||||||
|
"O": {
|
||||||
|
"item": "#blockObsidian",
|
||||||
|
"data": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"result": {
|
||||||
|
"item": "engineersdecor:small_mineral_smelter",
|
||||||
|
"count": 1
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,33 @@
|
||||||
|
{
|
||||||
|
"conditions": [
|
||||||
|
{
|
||||||
|
"type": "engineersdecor:grc",
|
||||||
|
"result": "engineersdecor:small_solar_panel",
|
||||||
|
"missing": ["immersiveengineering:metal_device1"]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type": "minecraft:crafting_shaped",
|
||||||
|
"pattern": [
|
||||||
|
"QQQ",
|
||||||
|
" S ",
|
||||||
|
"SRS"
|
||||||
|
],
|
||||||
|
"key": {
|
||||||
|
"Q": {
|
||||||
|
"item": "minecraft:quartz",
|
||||||
|
"data": 0
|
||||||
|
},
|
||||||
|
"S": {
|
||||||
|
"item": "minecraft:iron_ingot",
|
||||||
|
"data": 0
|
||||||
|
},
|
||||||
|
"R": {
|
||||||
|
"item": "minecraft:redstone_block",
|
||||||
|
"data": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"result": {
|
||||||
|
"item": "engineersdecor:small_solar_panel",
|
||||||
|
"count": 1
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,37 @@
|
||||||
|
{
|
||||||
|
"conditions": [
|
||||||
|
{
|
||||||
|
"type": "engineersdecor:grc",
|
||||||
|
"result": "engineersdecor:small_tree_cutter",
|
||||||
|
"missing": ["immersiveengineering:material"]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type": "minecraft:crafting_shaped",
|
||||||
|
"pattern": [
|
||||||
|
"PPP",
|
||||||
|
"PAO",
|
||||||
|
"PRP"
|
||||||
|
],
|
||||||
|
"key": {
|
||||||
|
"O": {
|
||||||
|
"item": "minecraft:observer",
|
||||||
|
"data": 0
|
||||||
|
},
|
||||||
|
"P": {
|
||||||
|
"item": "#ingotIron",
|
||||||
|
"data": 0
|
||||||
|
},
|
||||||
|
"A": {
|
||||||
|
"item": "minecraft:iron_axe",
|
||||||
|
"data": 0
|
||||||
|
},
|
||||||
|
"R": {
|
||||||
|
"item": "minecraft:redstone_block",
|
||||||
|
"data": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"result": {
|
||||||
|
"item": "engineersdecor:small_tree_cutter",
|
||||||
|
"count": 1
|
||||||
|
}
|
||||||
|
}
|
After Width: | Height: | Size: 539 B |
After Width: | Height: | Size: 412 B |
After Width: | Height: | Size: 282 B |
After Width: | Height: | Size: 581 B |
After Width: | Height: | Size: 637 B |
|
@ -0,0 +1 @@
|
||||||
|
{ "animation":{ "frames": [0,1], "frametime":2, "interpolate":false }}
|
After Width: | Height: | Size: 395 B |
After Width: | Height: | Size: 527 B |
After Width: | Height: | Size: 368 B |
After Width: | Height: | Size: 499 B |
After Width: | Height: | Size: 649 B |
After Width: | Height: | Size: 658 B |
After Width: | Height: | Size: 654 B |
After Width: | Height: | Size: 658 B |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
|
@ -2,7 +2,7 @@
|
||||||
org.gradle.daemon=false
|
org.gradle.daemon=false
|
||||||
org.gradle.jvmargs=-Xmx8G
|
org.gradle.jvmargs=-Xmx8G
|
||||||
version_minecraft=1.14.4
|
version_minecraft=1.14.4
|
||||||
version_forge_minecraft=1.14.4-28.0.81
|
version_forge_minecraft=1.14.4-28.0.100
|
||||||
version_fml_mappings=20190719-1.14.3
|
version_fml_mappings=20190719-1.14.3
|
||||||
version_jei=1.14.4:6.0.0.10
|
version_jei=1.14.4:6.0.0.10
|
||||||
version_engineersdecor=1.0.11-b3
|
version_engineersdecor=1.0.12-b2
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
{
|
{
|
||||||
"homepage": "https://www.curseforge.com/minecraft/mc-mods/engineers-decor/",
|
"homepage": "https://www.curseforge.com/minecraft/mc-mods/engineers-decor/",
|
||||||
"1.14.4": {
|
"1.14.4": {
|
||||||
|
"1.0.12-b1": "[U] Updated to Forge 1.14.4-28.0.93/20190719-1.14.3.\n[M] Logo location fixed.",
|
||||||
"1.0.11-b3": "[U] Updated to Forge 1.14.4-28.0.81/20190719-1.14.3.\n[F] Adapted recipe condition to Forge version (issue #49).",
|
"1.0.11-b3": "[U] Updated to Forge 1.14.4-28.0.81/20190719-1.14.3.\n[F] Adapted recipe condition to Forge version (issue #49).",
|
||||||
"1.0.11-b2": "[U] JEI dependency update 1.14.4:6.0.0.10.\n[F] Fixed creative ghost block issue (issue #48).\n[M] Updated ru_ru lang file (Shellyoung, PR#47).",
|
"1.0.11-b2": "[U] JEI dependency update 1.14.4:6.0.0.10.\n[F] Fixed creative ghost block issue (issue #48).\n[M] Updated ru_ru lang file (Shellyoung, PR#47).",
|
||||||
"1.0.11-b1": "[A] Added Steel Table\n[A] Added Treated Wood Side Table\n[A] Added Exit Sign\n[A] Added Steel Floor Grating\n[M] Sign orientation fixed, only blocked vertical placement.",
|
"1.0.11-b1": "[A] Added Steel Table\n[A] Added Treated Wood Side Table\n[A] Added Exit Sign\n[A] Added Steel Floor Grating\n[M] Sign orientation fixed, only blocked vertical placement.",
|
||||||
|
@ -22,6 +23,6 @@
|
||||||
},
|
},
|
||||||
"promos": {
|
"promos": {
|
||||||
"1.14.4-recommended": "",
|
"1.14.4-recommended": "",
|
||||||
"1.14.4-latest": "1.0.11-b3"
|
"1.14.4-latest": "1.0.12-b1"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -8,8 +8,18 @@ Mod sources for Minecraft version 1.14.3.
|
||||||
- Compiled mod distribution channel is curseforge: https://www.curseforge.com/minecraft/mc-mods/engineers-decor/files.
|
- Compiled mod distribution channel is curseforge: https://www.curseforge.com/minecraft/mc-mods/engineers-decor/files.
|
||||||
|
|
||||||
----
|
----
|
||||||
|
|
||||||
## Version history
|
## Version history
|
||||||
|
|
||||||
|
~ v1.0.12-b2 [U] Updated to Forge 1.14.4-28.0.100/20190719-1.14.3.
|
||||||
|
[A] Small Solar Panel added.
|
||||||
|
[M] Items fall through the Steel Floor Grating like in 1.12.2 version.
|
||||||
|
[M] Factory Dropper: Added pulse/continuous mode in GUI (issue #51,
|
||||||
|
thx Aristine for the CR).
|
||||||
|
|
||||||
|
- v1.0.12-b1 [U] Updated to Forge 1.14.4-28.0.93/20190719-1.14.3.
|
||||||
|
[M] Logo location fixed.
|
||||||
|
|
||||||
- v1.0.11-b3 [U] Updated to Forge 1.14.4-28.0.81/20190719-1.14.3.
|
- v1.0.11-b3 [U] Updated to Forge 1.14.4-28.0.81/20190719-1.14.3.
|
||||||
[F] Adapted recipe condition to Forge version (issue #49).
|
[F] Adapted recipe condition to Forge version (issue #49).
|
||||||
|
|
||||||
|
|
|
@ -367,6 +367,12 @@ public class ModContent
|
||||||
ModAuxiliaries.getPixeledAABB(1.1,0,1.1, 14.9,16,14.9)
|
ModAuxiliaries.getPixeledAABB(1.1,0,1.1, 14.9,16,14.9)
|
||||||
)).setRegistryName(new ResourceLocation(ModEngineersDecor.MODID, "small_mineral_smelter"));
|
)).setRegistryName(new ResourceLocation(ModEngineersDecor.MODID, "small_mineral_smelter"));
|
||||||
|
|
||||||
|
public static final BlockDecorSolarPanel SMALL_SOLAR_PANEL = (BlockDecorSolarPanel)(new BlockDecorSolarPanel(
|
||||||
|
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_HORIZIONTAL|BlockDecor.CFG_LOOK_PLACEMENT|BlockDecor.CFG_ELECTRICAL,
|
||||||
|
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(2f, 15f).sound(SoundType.METAL),
|
||||||
|
ModAuxiliaries.getPixeledAABB(0,0,0, 16,11.5,16)
|
||||||
|
)).setRegistryName(new ResourceLocation(ModEngineersDecor.MODID, "small_solar_panel"));
|
||||||
|
|
||||||
public static final BlockDecorPipeValve STRAIGHT_CHECK_VALVE = (BlockDecorPipeValve)(new BlockDecorPipeValve(
|
public static final BlockDecorPipeValve STRAIGHT_CHECK_VALVE = (BlockDecorPipeValve)(new BlockDecorPipeValve(
|
||||||
BlockDecor.CFG_FACING_PLACEMENT|BlockDecor.CFG_OPPOSITE_PLACEMENT|BlockDecor.CFG_FLIP_PLACEMENT_SHIFTCLICK|BlockDecor.CFG_CUTOUT,
|
BlockDecor.CFG_FACING_PLACEMENT|BlockDecor.CFG_OPPOSITE_PLACEMENT|BlockDecor.CFG_FLIP_PLACEMENT_SHIFTCLICK|BlockDecor.CFG_CUTOUT,
|
||||||
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(2f, 15f).sound(SoundType.METAL),
|
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(2f, 15f).sound(SoundType.METAL),
|
||||||
|
@ -442,6 +448,7 @@ public class ModContent
|
||||||
SMALL_ELECTRICAL_FURNACE,
|
SMALL_ELECTRICAL_FURNACE,
|
||||||
SMALL_WASTE_INCINERATOR,
|
SMALL_WASTE_INCINERATOR,
|
||||||
SMALL_MINERAL_SMELTER,
|
SMALL_MINERAL_SMELTER,
|
||||||
|
SMALL_SOLAR_PANEL,
|
||||||
CLINKER_BRICK_BLOCK,
|
CLINKER_BRICK_BLOCK,
|
||||||
CLINKER_BRICK_SLAB,
|
CLINKER_BRICK_SLAB,
|
||||||
CLINKER_BRICK_STAIRS,
|
CLINKER_BRICK_STAIRS,
|
||||||
|
@ -550,6 +557,11 @@ public class ModContent
|
||||||
.build(null)
|
.build(null)
|
||||||
.setRegistryName(ModEngineersDecor.MODID, "te_small_mineral_smelter");
|
.setRegistryName(ModEngineersDecor.MODID, "te_small_mineral_smelter");
|
||||||
|
|
||||||
|
public static final TileEntityType<?> TET_SMALL_SOLAR_PANEL = TileEntityType.Builder
|
||||||
|
.create(BlockDecorSolarPanel.BTileEntity::new, SMALL_SOLAR_PANEL)
|
||||||
|
.build(null)
|
||||||
|
.setRegistryName(ModEngineersDecor.MODID, "te_small_solar_panel");
|
||||||
|
|
||||||
|
|
||||||
private static final TileEntityType<?> tile_entity_types[] = {
|
private static final TileEntityType<?> tile_entity_types[] = {
|
||||||
TET_TREATED_WOOD_CRAFTING_TABLE,
|
TET_TREATED_WOOD_CRAFTING_TABLE,
|
||||||
|
@ -559,7 +571,8 @@ public class ModContent
|
||||||
TET_WASTE_INCINERATOR,
|
TET_WASTE_INCINERATOR,
|
||||||
TET_STRAIGHT_PIPE_VALVE,
|
TET_STRAIGHT_PIPE_VALVE,
|
||||||
TET_PASSIVE_FLUID_ACCUMULATOR,
|
TET_PASSIVE_FLUID_ACCUMULATOR,
|
||||||
TET_MINERAL_SMELTER
|
TET_MINERAL_SMELTER,
|
||||||
|
TET_SMALL_SOLAR_PANEL
|
||||||
};
|
};
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
|
@ -170,10 +170,11 @@ public class BlockDecorDropper extends BlockDecorDirected
|
||||||
public static final int MAX_DROP_COUNT = 32;
|
public static final int MAX_DROP_COUNT = 32;
|
||||||
public static final int DROP_PERIOD_OFFSET = 10;
|
public static final int DROP_PERIOD_OFFSET = 10;
|
||||||
///
|
///
|
||||||
public static final int DROPLOGIC_FILTER_ANDGATE = 0x1;
|
public static final int DROPLOGIC_FILTER_ANDGATE = 0x01;
|
||||||
public static final int DROPLOGIC_EXTERN_ANDGATE = 0x2;
|
public static final int DROPLOGIC_EXTERN_ANDGATE = 0x02;
|
||||||
public static final int DROPLOGIC_SILENT_DROP = 0x4;
|
public static final int DROPLOGIC_SILENT_DROP = 0x04;
|
||||||
public static final int DROPLOGIC_SILENT_OPEN = 0x8;
|
public static final int DROPLOGIC_SILENT_OPEN = 0x08;
|
||||||
|
public static final int DROPLOGIC_CONTINUOUS = 0x10;
|
||||||
///
|
///
|
||||||
private int filter_matches_[] = new int[CTRL_SLOTS_SIZE];
|
private int filter_matches_[] = new int[CTRL_SLOTS_SIZE];
|
||||||
private int open_timer_ = 0;
|
private int open_timer_ = 0;
|
||||||
|
@ -508,9 +509,11 @@ public class BlockDecorDropper extends BlockDecorDirected
|
||||||
if((drop_timer_ > 0) && ((--drop_timer_) == 0)) markDirty();
|
if((drop_timer_ > 0) && ((--drop_timer_) == 0)) markDirty();
|
||||||
if(--tick_timer_ > 0) return;
|
if(--tick_timer_ > 0) return;
|
||||||
tick_timer_ = TICK_INTERVAL;
|
tick_timer_ = TICK_INTERVAL;
|
||||||
|
final boolean continuous_mode = (drop_logic_ & DROPLOGIC_CONTINUOUS)!=0;
|
||||||
boolean dirty = block_power_updated_;
|
boolean dirty = block_power_updated_;
|
||||||
boolean redstone_trigger = (block_power_signal_ && block_power_updated_);
|
boolean redstone_trigger = (block_power_signal_ && ((block_power_updated_) || (continuous_mode)));
|
||||||
boolean filter_trigger;
|
boolean filter_trigger;
|
||||||
|
boolean filter_defined = false;
|
||||||
boolean trigger;
|
boolean trigger;
|
||||||
// Trigger logic
|
// Trigger logic
|
||||||
{
|
{
|
||||||
|
@ -518,9 +521,9 @@ public class BlockDecorDropper extends BlockDecorDirected
|
||||||
for(int i=INPUT_SLOTS_FIRST; i<(INPUT_SLOTS_FIRST+INPUT_SLOTS_SIZE); ++i) {
|
for(int i=INPUT_SLOTS_FIRST; i<(INPUT_SLOTS_FIRST+INPUT_SLOTS_SIZE); ++i) {
|
||||||
if(stacks_.get(i).getCount() >= drop_count_) { droppable_slot_found = true; break; }
|
if(stacks_.get(i).getCount() >= drop_count_) { droppable_slot_found = true; break; }
|
||||||
}
|
}
|
||||||
int filter_nset = 0;
|
|
||||||
// From filters / inventory checks
|
// From filters / inventory checks
|
||||||
{
|
{
|
||||||
|
int filter_nset = 0;
|
||||||
int last_filter_matches_[] = filter_matches_.clone();
|
int last_filter_matches_[] = filter_matches_.clone();
|
||||||
boolean slot_assigned = false;
|
boolean slot_assigned = false;
|
||||||
for(int ci=0; ci<CTRL_SLOTS_SIZE; ++ci) {
|
for(int ci=0; ci<CTRL_SLOTS_SIZE; ++ci) {
|
||||||
|
@ -546,12 +549,13 @@ public class BlockDecorDropper extends BlockDecorDirected
|
||||||
if(filter_matches_[i] > 1) ++nmatched;
|
if(filter_matches_[i] > 1) ++nmatched;
|
||||||
if(filter_matches_[i] != last_filter_matches_[i]) dirty = true;
|
if(filter_matches_[i] != last_filter_matches_[i]) dirty = true;
|
||||||
}
|
}
|
||||||
filter_trigger = ((filter_nset >0) && (nmatched > 0));
|
filter_defined = (filter_nset > 0);
|
||||||
|
filter_trigger = ((filter_nset > 0) && (nmatched > 0));
|
||||||
if(((drop_logic_ & DROPLOGIC_FILTER_ANDGATE) != 0) && (nmatched != filter_nset)) filter_trigger = false;
|
if(((drop_logic_ & DROPLOGIC_FILTER_ANDGATE) != 0) && (nmatched != filter_nset)) filter_trigger = false;
|
||||||
}
|
}
|
||||||
// gates
|
// gates
|
||||||
{
|
{
|
||||||
if(filter_nset > 0) {
|
if(filter_defined) {
|
||||||
trigger = ((drop_logic_ & DROPLOGIC_EXTERN_ANDGATE) != 0) ? (filter_trigger && redstone_trigger) : (filter_trigger || redstone_trigger);
|
trigger = ((drop_logic_ & DROPLOGIC_EXTERN_ANDGATE) != 0) ? (filter_trigger && redstone_trigger) : (filter_trigger || redstone_trigger);
|
||||||
} else {
|
} else {
|
||||||
trigger = redstone_trigger;
|
trigger = redstone_trigger;
|
||||||
|
@ -818,7 +822,7 @@ public class BlockDecorDropper extends BlockDecorDirected
|
||||||
} else if(isPointInRegion(114, 51, 9, 9, mouseX, mouseY)) {
|
} else if(isPointInRegion(114, 51, 9, 9, mouseX, mouseY)) {
|
||||||
container.onGuiAction("manual_rstrigger", 1);
|
container.onGuiAction("manual_rstrigger", 1);
|
||||||
} else if(isPointInRegion(162, 66, 7, 9, mouseX, mouseY)) {
|
} else if(isPointInRegion(162, 66, 7, 9, mouseX, mouseY)) {
|
||||||
container.onGuiAction("manual_trigger", 1);
|
container.onGuiAction("drop_logic", container.field(5) ^ BTileEntity.DROPLOGIC_CONTINUOUS);
|
||||||
} else if(isPointInRegion(132, 66, 9, 9, mouseX, mouseY)) {
|
} else if(isPointInRegion(132, 66, 9, 9, mouseX, mouseY)) {
|
||||||
container.onGuiAction("drop_logic", container.field(5) ^ BTileEntity.DROPLOGIC_FILTER_ANDGATE);
|
container.onGuiAction("drop_logic", container.field(5) ^ BTileEntity.DROPLOGIC_FILTER_ANDGATE);
|
||||||
} else if(isPointInRegion(148, 66, 9, 9, mouseX, mouseY)) {
|
} else if(isPointInRegion(148, 66, 9, 9, mouseX, mouseY)) {
|
||||||
|
@ -887,8 +891,10 @@ public class BlockDecorDropper extends BlockDecorDirected
|
||||||
{
|
{
|
||||||
int filter_gate_offset = ((container.field(5) & BTileEntity.DROPLOGIC_FILTER_ANDGATE) != 0) ? 11 : 0;
|
int filter_gate_offset = ((container.field(5) & BTileEntity.DROPLOGIC_FILTER_ANDGATE) != 0) ? 11 : 0;
|
||||||
int extern_gate_offset = ((container.field(5) & BTileEntity.DROPLOGIC_EXTERN_ANDGATE) != 0) ? 11 : 0;
|
int extern_gate_offset = ((container.field(5) & BTileEntity.DROPLOGIC_EXTERN_ANDGATE) != 0) ? 11 : 0;
|
||||||
|
int pulse_mode_offset = ((container.fields_[5] & BTileEntity.DROPLOGIC_CONTINUOUS ) != 0) ? 10 : 0;
|
||||||
blit(x0+132, y0+66, 179+filter_gate_offset, 66, 9, 9);
|
blit(x0+132, y0+66, 179+filter_gate_offset, 66, 9, 9);
|
||||||
blit(x0+148, y0+66, 179+extern_gate_offset, 66, 9, 9);
|
blit(x0+148, y0+66, 179+extern_gate_offset, 66, 9, 9);
|
||||||
|
blit(x0+162, y0+66, 200+pulse_mode_offset, 66, 9, 9);
|
||||||
}
|
}
|
||||||
// drop timer running indicator
|
// drop timer running indicator
|
||||||
{
|
{
|
||||||
|
|
|
@ -8,16 +8,22 @@
|
||||||
*/
|
*/
|
||||||
package wile.engineersdecor.blocks;
|
package wile.engineersdecor.blocks;
|
||||||
|
|
||||||
|
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.block.BlockState;
|
import net.minecraft.block.BlockState;
|
||||||
|
import net.minecraft.entity.Entity;
|
||||||
|
import net.minecraft.entity.item.ItemEntity;
|
||||||
import net.minecraft.util.math.AxisAlignedBB;
|
import net.minecraft.util.math.AxisAlignedBB;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
import net.minecraft.util.math.MathHelper;
|
||||||
|
import net.minecraft.util.math.shapes.ISelectionContext;
|
||||||
|
import net.minecraft.util.math.shapes.VoxelShape;
|
||||||
|
import net.minecraft.util.math.shapes.VoxelShapes;
|
||||||
import net.minecraft.world.IBlockReader;
|
import net.minecraft.world.IBlockReader;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
|
|
||||||
public class BlockDecorFloorGrating extends BlockDecor
|
public class BlockDecorFloorGrating extends BlockDecor
|
||||||
{
|
{
|
||||||
|
|
||||||
public BlockDecorFloorGrating(long config, Block.Properties builder, final AxisAlignedBB unrotatedAABB)
|
public BlockDecorFloorGrating(long config, Block.Properties builder, final AxisAlignedBB unrotatedAABB)
|
||||||
{ super(config, builder); }
|
{ super(config, builder); }
|
||||||
|
|
||||||
|
@ -25,31 +31,40 @@ public class BlockDecorFloorGrating extends BlockDecor
|
||||||
public boolean propagatesSkylightDown(BlockState state, IBlockReader reader, BlockPos pos)
|
public boolean propagatesSkylightDown(BlockState state, IBlockReader reader, BlockPos pos)
|
||||||
{ return true; }
|
{ return true; }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onLanded(IBlockReader world, Entity entity)
|
||||||
|
{
|
||||||
|
if(!(entity instanceof ItemEntity)) {
|
||||||
|
super.onLanded(world, entity);
|
||||||
|
} else {
|
||||||
|
entity.setMotion(0, -0.1,0);
|
||||||
|
entity.setPositionAndUpdate(entity.posX, entity.posY-0.3, entity.posZ);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// @Override
|
@Override
|
||||||
// public void addCollisionBoxToList(IBlockState state, World world, BlockPos pos, AxisAlignedBB entityBox, List<AxisAlignedBB> collidingBoxes, @Nullable Entity entity, boolean isActualState)
|
public void onFallenUpon(World world, BlockPos pos, Entity entity, float fallDistance)
|
||||||
// { if(!(entity instanceof EntityItem)) super.addCollisionBoxToList(state, world, pos, entityBox, collidingBoxes, entity, isActualState); }
|
{
|
||||||
//
|
if(!(entity instanceof ItemEntity)) {
|
||||||
// @Override
|
super.onFallenUpon(world, pos, entity, fallDistance);
|
||||||
// public void onFallenUpon(World world, BlockPos pos, Entity entity, float fallDistance)
|
} else {
|
||||||
// {
|
entity.setMotion(0, -0.1,0);
|
||||||
// if(!(entity instanceof EntityItem)) {
|
entity.setPositionAndUpdate(entity.posX, entity.posY-0.3, entity.posZ);
|
||||||
// entity.fall(fallDistance, 1.0F);
|
}
|
||||||
// } else {
|
}
|
||||||
// entity.setVelocity(0,-0.2,0);
|
|
||||||
// }
|
@Override
|
||||||
// }
|
@SuppressWarnings("deprecation")
|
||||||
//
|
public void onEntityCollision(BlockState state, World world, BlockPos pos, Entity entity)
|
||||||
// @Override
|
{
|
||||||
// public void onEntityCollision(World world, BlockPos pos, IBlockState state, Entity entity)
|
if(!(entity instanceof ItemEntity)) return;
|
||||||
// {
|
if((entity.posY-pos.getY()) < 0.7) return;
|
||||||
// if(!(entity instanceof EntityItem)) return;
|
double vy = MathHelper.clamp(entity.getMotion().y, -1.2, -0.2);
|
||||||
// if((entity.posY-pos.getY()) > 0.7) {
|
entity.setMotion(0, vy, 0);
|
||||||
// if(entity.motionY > -0.2) entity.motionY = -0.2;
|
entity.setPositionAndUpdate(pos.getX()+0.5, entity.posY-0.3, pos.getZ()+0.5);
|
||||||
// entity.setVelocity(0,-0.1,0);
|
}
|
||||||
// entity.setPositionAndUpdate(entity.posX, entity.posY-0.3, entity.posZ);
|
|
||||||
// } else {
|
@Override
|
||||||
// entity.setVelocity(0,entity.motionY,0);
|
public VoxelShape getCollisionShape(BlockState state, IBlockReader world, BlockPos pos, ISelectionContext context)
|
||||||
// }
|
{ return (context.getEntity() instanceof ItemEntity) ? VoxelShapes.empty() : super.getCollisionShape(state, world, pos, context); }
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,141 @@
|
||||||
|
/*
|
||||||
|
* @file BlockDecorDirected.java
|
||||||
|
* @author Stefan Wilhelm (wile)
|
||||||
|
* @copyright (C) 2019 Stefan Wilhelm
|
||||||
|
* @license MIT (see https://opensource.org/licenses/MIT)
|
||||||
|
*
|
||||||
|
* Smaller (cutout) block with a defined facing.
|
||||||
|
*/
|
||||||
|
package wile.engineersdecor.blocks;
|
||||||
|
|
||||||
|
import wile.engineersdecor.ModContent;
|
||||||
|
import wile.engineersdecor.ModEngineersDecor;
|
||||||
|
import net.minecraft.nbt.CompoundNBT;
|
||||||
|
import net.minecraft.tileentity.ITickableTileEntity;
|
||||||
|
import net.minecraft.tileentity.TileEntityType;
|
||||||
|
import net.minecraft.util.Direction;
|
||||||
|
import net.minecraft.block.Block;
|
||||||
|
import net.minecraft.block.BlockState;
|
||||||
|
import net.minecraft.item.BlockItemUseContext;
|
||||||
|
import net.minecraft.state.IntegerProperty;
|
||||||
|
import net.minecraft.state.StateContainer;
|
||||||
|
import net.minecraft.util.math.MathHelper;
|
||||||
|
import net.minecraft.world.IBlockReader;
|
||||||
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
import net.minecraft.util.math.AxisAlignedBB;
|
||||||
|
import net.minecraftforge.energy.CapabilityEnergy;
|
||||||
|
import net.minecraftforge.energy.IEnergyStorage;
|
||||||
|
|
||||||
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
|
|
||||||
|
public class BlockDecorSolarPanel extends BlockDecor
|
||||||
|
{
|
||||||
|
public static final IntegerProperty EXPOSITION = IntegerProperty.create("exposition", 0, 4);
|
||||||
|
|
||||||
|
public BlockDecorSolarPanel(long config, Block.Properties builder, final AxisAlignedBB unrotatedAABB)
|
||||||
|
{
|
||||||
|
super(config, builder, unrotatedAABB);
|
||||||
|
setDefaultState(stateContainer.getBaseState().with(EXPOSITION, 1));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void fillStateContainer(StateContainer.Builder<Block, BlockState> builder)
|
||||||
|
{ super.fillStateContainer(builder); builder.add(EXPOSITION); }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Nullable
|
||||||
|
public BlockState getStateForPlacement(BlockItemUseContext context)
|
||||||
|
{ return getDefaultState(); }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean hasTileEntity(BlockState state)
|
||||||
|
{ return true; }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Nullable
|
||||||
|
public TileEntity createTileEntity(BlockState state, IBlockReader world)
|
||||||
|
{ return new BlockDecorSolarPanel.BTileEntity(); }
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------------------------
|
||||||
|
// Tile entity
|
||||||
|
//--------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
public static class BTileEntity extends TileEntity implements ITickableTileEntity
|
||||||
|
{
|
||||||
|
public static final int DEFAULT_PEAK_POWER = 45;
|
||||||
|
public static final int TICK_INTERVAL = 8;
|
||||||
|
public static final int ACCUMULATION_INTERVAL = 4;
|
||||||
|
private static final Direction transfer_directions_[] = {Direction.DOWN, Direction.EAST, Direction.SOUTH, Direction.WEST, Direction.NORTH };
|
||||||
|
private static int peak_power_per_tick_ = DEFAULT_PEAK_POWER;
|
||||||
|
private static int max_power_storage_ = 10000;
|
||||||
|
private int tick_timer_ = 0;
|
||||||
|
private int recalc_timer_ = 0;
|
||||||
|
private int accumulated_power_ = 0;
|
||||||
|
|
||||||
|
public static void on_config(int peak_power_per_tick)
|
||||||
|
{
|
||||||
|
peak_power_per_tick_ = peak_power_per_tick;
|
||||||
|
ModEngineersDecor.logger().info("Config small solar panel: Peak production:" + peak_power_per_tick_ + "/tick");
|
||||||
|
}
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
public BTileEntity()
|
||||||
|
{ this(ModContent.TET_SMALL_SOLAR_PANEL); }
|
||||||
|
|
||||||
|
public BTileEntity(TileEntityType<?> te_type)
|
||||||
|
{ super(te_type); }
|
||||||
|
|
||||||
|
public void readnbt(CompoundNBT nbt, boolean update_packet)
|
||||||
|
{ accumulated_power_ = nbt.getInt("energy"); }
|
||||||
|
|
||||||
|
protected void writenbt(CompoundNBT nbt, boolean update_packet)
|
||||||
|
{ nbt.putInt("energy", accumulated_power_); }
|
||||||
|
|
||||||
|
// TileEntity ------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void read(CompoundNBT nbt)
|
||||||
|
{ super.read(nbt); readnbt(nbt, false); }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public CompoundNBT write(CompoundNBT nbt)
|
||||||
|
{ super.write(nbt); writenbt(nbt, false); return nbt; }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void tick()
|
||||||
|
{
|
||||||
|
if((world.isRemote) || (--tick_timer_ > 0)) return;
|
||||||
|
tick_timer_ = TICK_INTERVAL;
|
||||||
|
if(!world.canBlockSeeSky(pos)) { tick_timer_ = TICK_INTERVAL * 5; return; }
|
||||||
|
if(accumulated_power_ > 0) {
|
||||||
|
for(int i=0; (i<transfer_directions_.length) && (accumulated_power_>0); ++i) {
|
||||||
|
final Direction f = transfer_directions_[i];
|
||||||
|
TileEntity te = world.getTileEntity(pos.offset(f));
|
||||||
|
if(te==null) continue;
|
||||||
|
IEnergyStorage es = te.getCapability(CapabilityEnergy.ENERGY, f.getOpposite()).orElse(null);
|
||||||
|
if((es==null) || (!es.canReceive())) continue;
|
||||||
|
accumulated_power_ = MathHelper.clamp(accumulated_power_-es.receiveEnergy(accumulated_power_, false),0, accumulated_power_);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(--recalc_timer_ > 0) return;
|
||||||
|
recalc_timer_ = ACCUMULATION_INTERVAL + ((int)(Math.random()+.5));
|
||||||
|
BlockState state = world.getBlockState(pos);
|
||||||
|
int theta = ((((int)(world.getCelestialAngleRadians(1f) * (180.0/Math.PI)))+90) % 360);
|
||||||
|
int e = 2;
|
||||||
|
if(theta > 340) e = 2;
|
||||||
|
else if(theta < 45) e = 0;
|
||||||
|
else if(theta < 80) e = 1;
|
||||||
|
else if(theta < 100) e = 2;
|
||||||
|
else if(theta < 135) e = 3;
|
||||||
|
else if(theta < 190) e = 4;
|
||||||
|
BlockState nstate = state.with(EXPOSITION, e);
|
||||||
|
if(nstate != state) world.setBlockState(pos, nstate, 1|2);
|
||||||
|
final double sb = world.getSunBrightness(1f);
|
||||||
|
double rf = Math.abs(1.0-(((double)Math.abs(MathHelper.clamp(theta, 0, 180)-90))/90));
|
||||||
|
rf = Math.sqrt(rf) * sb * ((TICK_INTERVAL*ACCUMULATION_INTERVAL)+2) * peak_power_per_tick_;
|
||||||
|
accumulated_power_ = Math.min(accumulated_power_+(int)rf, max_power_storage_);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -17,6 +17,7 @@ import net.minecraftforge.common.ForgeConfigSpec;
|
||||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||||
import org.apache.commons.lang3.tuple.Pair;
|
import org.apache.commons.lang3.tuple.Pair;
|
||||||
import wile.engineersdecor.blocks.*;
|
import wile.engineersdecor.blocks.*;
|
||||||
|
import wile.engineersdecor.blocks.BlockDecorSolarPanel.BTileEntity;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
@ -131,6 +132,7 @@ public class ModConfig
|
||||||
public final ForgeConfigSpec.IntValue furnace_boost_energy_consumption;
|
public final ForgeConfigSpec.IntValue furnace_boost_energy_consumption;
|
||||||
public final ForgeConfigSpec.IntValue e_furnace_speed_percent;
|
public final ForgeConfigSpec.IntValue e_furnace_speed_percent;
|
||||||
public final ForgeConfigSpec.IntValue e_furnace_power_consumption;
|
public final ForgeConfigSpec.IntValue e_furnace_power_consumption;
|
||||||
|
public final ForgeConfigSpec.IntValue small_solar_panel_peak_production;
|
||||||
public final ForgeConfigSpec.BooleanValue e_furnace_automatic_pulling;
|
public final ForgeConfigSpec.BooleanValue e_furnace_automatic_pulling;
|
||||||
public final ForgeConfigSpec.DoubleValue chair_mob_sitting_probability_percent;
|
public final ForgeConfigSpec.DoubleValue chair_mob_sitting_probability_percent;
|
||||||
public final ForgeConfigSpec.DoubleValue chair_mob_standup_probability_percent;
|
public final ForgeConfigSpec.DoubleValue chair_mob_standup_probability_percent;
|
||||||
|
@ -364,6 +366,14 @@ public class ModConfig
|
||||||
.comment("Defines if the electrical furnace automatically pulls items from an inventory at the input side." +
|
.comment("Defines if the electrical furnace automatically pulls items from an inventory at the input side." +
|
||||||
"The config value can be changed on-the-fly for tuning.")
|
"The config value can be changed on-the-fly for tuning.")
|
||||||
.define("e_furnace_automatic_pulling", false);
|
.define("e_furnace_automatic_pulling", false);
|
||||||
|
small_solar_panel_peak_production = builder
|
||||||
|
.translation(ModEngineersDecor.MODID + ".config.small_solar_panel_peak_production")
|
||||||
|
.comment("Defines the peak power production (at noon) of the Small Solar Panel. " +
|
||||||
|
"Note that the agerage power is much less, as no power is produced at all during the night, " +
|
||||||
|
"and the power curve is nonlinear rising/falling during the day. Bad weather conditions also " +
|
||||||
|
"decrease the production. The config value can be changed on-the-fly for tuning.")
|
||||||
|
.defineInRange("small_solar_panel_peak_production", BTileEntity.DEFAULT_PEAK_POWER, 10, 256);
|
||||||
|
|
||||||
builder.pop();
|
builder.pop();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -471,6 +481,7 @@ public class ModConfig
|
||||||
BlockDecorCraftingTable.on_config(COMMON.without_crafting_table_history.get(), false, COMMON.with_crafting_quickmove_buttons.get());
|
BlockDecorCraftingTable.on_config(COMMON.without_crafting_table_history.get(), false, COMMON.with_crafting_quickmove_buttons.get());
|
||||||
BlockDecorPipeValve.on_config(COMMON.pipevalve_max_flowrate.get(), COMMON.pipevalve_redstone_gain.get());
|
BlockDecorPipeValve.on_config(COMMON.pipevalve_max_flowrate.get(), COMMON.pipevalve_redstone_gain.get());
|
||||||
BlockDecorFurnaceElectrical.BTileEntity.on_config(COMMON.e_furnace_speed_percent.get(), COMMON.e_furnace_power_consumption.get(), COMMON.e_furnace_automatic_pulling.get());
|
BlockDecorFurnaceElectrical.BTileEntity.on_config(COMMON.e_furnace_speed_percent.get(), COMMON.e_furnace_power_consumption.get(), COMMON.e_furnace_automatic_pulling.get());
|
||||||
|
BlockDecorSolarPanel.BTileEntity.on_config(COMMON.small_solar_panel_peak_production.get());
|
||||||
without_crafting_table = isOptedOut(ModContent.TREATED_WOOD_CRAFTING_TABLE);
|
without_crafting_table = isOptedOut(ModContent.TREATED_WOOD_CRAFTING_TABLE);
|
||||||
immersiveengineering_installed = ModAuxiliaries.isModLoaded("immersiveengineering");
|
immersiveengineering_installed = ModAuxiliaries.isModLoaded("immersiveengineering");
|
||||||
{
|
{
|
||||||
|
|
|
@ -5,7 +5,6 @@ loaderVersion="[25,)"
|
||||||
issueTrackerURL="https://github.com/stfwi/engineers-decor/issues/"
|
issueTrackerURL="https://github.com/stfwi/engineers-decor/issues/"
|
||||||
|
|
||||||
[[mods]]
|
[[mods]]
|
||||||
|
|
||||||
modId="engineersdecor"
|
modId="engineersdecor"
|
||||||
version="${file.jarVersion}"
|
version="${file.jarVersion}"
|
||||||
displayName="Engineer's Decor"
|
displayName="Engineer's Decor"
|
||||||
|
@ -14,12 +13,12 @@ authors="wilechaote"
|
||||||
credits="BluSunrize, malte0811, et al., the Forge Smiths, the Modders of the World."
|
credits="BluSunrize, malte0811, et al., the Forge Smiths, the Modders of the World."
|
||||||
updateJSONURL="https://raw.githubusercontent.com/stfwi/engineers-decor/develop/meta/update.json"
|
updateJSONURL="https://raw.githubusercontent.com/stfwi/engineers-decor/develop/meta/update.json"
|
||||||
displayURL="https://github.com/stfwi/engineers-decor/"
|
displayURL="https://github.com/stfwi/engineers-decor/"
|
||||||
logoFile="engineersdecor.png" # Double check: A file name (in the root of the mod JAR) containing a logo for display
|
logoFile="logo.png"
|
||||||
|
|
||||||
[[dependencies.engineersdecor]]
|
[[dependencies.engineersdecor]]
|
||||||
modId="forge"
|
modId="forge"
|
||||||
mandatory=true
|
mandatory=true
|
||||||
versionRange="[25,)" #mandatory
|
versionRange="[28.0.81,)"
|
||||||
ordering="NONE"
|
ordering="NONE"
|
||||||
side="BOTH"
|
side="BOTH"
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"exposition=0": { "model": "engineersdecor:block/device/small_solar_panel_model_exp0" },
|
||||||
|
"exposition=1": { "model": "engineersdecor:block/device/small_solar_panel_model_exp1" },
|
||||||
|
"exposition=2": { "model": "engineersdecor:block/device/small_solar_panel_model_exp2" },
|
||||||
|
"exposition=3": { "model": "engineersdecor:block/device/small_solar_panel_model_exp3" },
|
||||||
|
"exposition=4": { "model": "engineersdecor:block/device/small_solar_panel_model_exp4" }
|
||||||
|
}
|
||||||
|
}
|
|
@ -151,6 +151,8 @@
|
||||||
"block.engineersdecor.factory_dropper.help": "§6Dropper suitable for advanced factory automation.§r Has twelve round-robin selected slots. Drop force, angle, stack size, and cool-down delay adjustable in the GUI. Three stack compare slots with logical AND or OR can be used as internal trigger source. Internal trigger can be AND'ed or OR'ed with the external redstone signal trigger. Trigger simulation buttons for testing. Pre-opens shutter door when internal trigger conditions are met. Drops all matching stacks simultaneously. Click on all elements in the GUI to see how it works.",
|
"block.engineersdecor.factory_dropper.help": "§6Dropper suitable for advanced factory automation.§r Has twelve round-robin selected slots. Drop force, angle, stack size, and cool-down delay adjustable in the GUI. Three stack compare slots with logical AND or OR can be used as internal trigger source. Internal trigger can be AND'ed or OR'ed with the external redstone signal trigger. Trigger simulation buttons for testing. Pre-opens shutter door when internal trigger conditions are met. Drops all matching stacks simultaneously. Click on all elements in the GUI to see how it works.",
|
||||||
"block.engineersdecor.small_mineral_smelter": "Small Mineral Melting Furnace",
|
"block.engineersdecor.small_mineral_smelter": "Small Mineral Melting Furnace",
|
||||||
"block.engineersdecor.small_mineral_smelter.help": "§6High temperature, high insulation electrical stone melting furnace.§r\n Heats up mineral blocks to magma blocks, and finally to lava. Due to the miniturized device size the process is rather inefficient - much time and energy is needed to liquefy a stone block.",
|
"block.engineersdecor.small_mineral_smelter.help": "§6High temperature, high insulation electrical stone melting furnace.§r\n Heats up mineral blocks to magma blocks, and finally to lava. Due to the miniturized device size the process is rather inefficient - much time and energy is needed to liquefy a stone block.",
|
||||||
|
"block.engineersdecor.small_solar_panel": "Small Solar Panel",
|
||||||
|
"block.engineersdecor.small_solar_panel.help": "§6Produces a small amount of power when exposed to sunlight.§r\n Useful for charging LF capacitors in remote systems with low consumption. The internal charge pump circuit accumulates and frequently transfers RF. Production depends on day time and the weather.",
|
||||||
"block.engineersdecor.sign_decor": "Sign Plate (Engineer's decor)",
|
"block.engineersdecor.sign_decor": "Sign Plate (Engineer's decor)",
|
||||||
"block.engineersdecor.sign_decor.help": "§6This should not be craftable or visible in JEI. Used for creative tab and screenshots.",
|
"block.engineersdecor.sign_decor.help": "§6This should not be craftable or visible in JEI. Used for creative tab and screenshots.",
|
||||||
"block.engineersdecor.sign_hotwire": "Sign \"Caution Hot Wire\"",
|
"block.engineersdecor.sign_hotwire": "Sign \"Caution Hot Wire\"",
|
||||||
|
|
|
@ -150,6 +150,7 @@
|
||||||
"block.engineersdecor.factory_dropper": "Фабричный выбрасыватель",
|
"block.engineersdecor.factory_dropper": "Фабричный выбрасыватель",
|
||||||
"block.engineersdecor.factory_dropper.help": "§6Выбрасыватель подходит для продвинутой автоматизации производства.§r Имеет 12 выборочных слотов. Сила броска, угол, размер стопки и задержка настраиваются в GUI. 3 слота сравнения стека с логическим И или ИЛИ могут использоваться в качестве внутреннего источника запуска. Внутренний триггер может быть И или ИЛИ с внешним триггерным сигналом красного камня. Триггерные кнопки симуляции для тестирования. Предварительно открывает дверцу затвора, когда выполняются условия внутреннего запуска. Сбрасывает все соответствующие стеки одновременно. Нажмите на все элементы в GUI, чтобы увидеть, как это работает.",
|
"block.engineersdecor.factory_dropper.help": "§6Выбрасыватель подходит для продвинутой автоматизации производства.§r Имеет 12 выборочных слотов. Сила броска, угол, размер стопки и задержка настраиваются в GUI. 3 слота сравнения стека с логическим И или ИЛИ могут использоваться в качестве внутреннего источника запуска. Внутренний триггер может быть И или ИЛИ с внешним триггерным сигналом красного камня. Триггерные кнопки симуляции для тестирования. Предварительно открывает дверцу затвора, когда выполняются условия внутреннего запуска. Сбрасывает все соответствующие стеки одновременно. Нажмите на все элементы в GUI, чтобы увидеть, как это работает.",
|
||||||
"block.engineersdecor.small_mineral_smelter": "Small Mineral Melting Furnace",
|
"block.engineersdecor.small_mineral_smelter": "Small Mineral Melting Furnace",
|
||||||
|
"block.engineersdecor.small_solar_panel": "Small Solar Panel",
|
||||||
"block.engineersdecor.sign_decor": "Табличка с надписью (Логотип Engineer's decor)",
|
"block.engineersdecor.sign_decor": "Табличка с надписью (Логотип Engineer's decor)",
|
||||||
"block.engineersdecor.sign_decor.help": "§Это не должно быть крафтовым или видимым в JEI. Используется для творческой вкладки и скриншотов.",
|
"block.engineersdecor.sign_decor.help": "§Это не должно быть крафтовым или видимым в JEI. Используется для творческой вкладки и скриншотов.",
|
||||||
"block.engineersdecor.sign_hotwire": "Знак «Осторожно, под напряжением»",
|
"block.engineersdecor.sign_hotwire": "Знак «Осторожно, под напряжением»",
|
||||||
|
|
|
@ -112,6 +112,7 @@
|
||||||
"block.engineersdecor.passive_fluid_accumulator": "Passive Fluid Accumulator",
|
"block.engineersdecor.passive_fluid_accumulator": "Passive Fluid Accumulator",
|
||||||
"block.engineersdecor.factory_dropper": "Factory Dropper",
|
"block.engineersdecor.factory_dropper": "Factory Dropper",
|
||||||
"block.engineersdecor.small_mineral_smelter": "Small Mineral Melting Furnace",
|
"block.engineersdecor.small_mineral_smelter": "Small Mineral Melting Furnace",
|
||||||
|
"block.engineersdecor.small_solar_panel": "Small Solar Panel",
|
||||||
"block.engineersdecor.sign_decor": "Sign Plate (Engineer's decor)",
|
"block.engineersdecor.sign_decor": "Sign Plate (Engineer's decor)",
|
||||||
"block.engineersdecor.sign_hotwire": "Sign \"Caution Hot Wire\"",
|
"block.engineersdecor.sign_hotwire": "Sign \"Caution Hot Wire\"",
|
||||||
"block.engineersdecor.sign_mindstep": "Sign \"Mind The Step\"",
|
"block.engineersdecor.sign_mindstep": "Sign \"Mind The Step\"",
|
||||||
|
|
|
@ -0,0 +1,196 @@
|
||||||
|
{
|
||||||
|
"parent": "block/cube",
|
||||||
|
"textures": {
|
||||||
|
"2": "engineersdecor:block/device/small_solar_panel_side",
|
||||||
|
"m": "engineersdecor:block/device/small_solar_panel_parts",
|
||||||
|
"particle": "engineersdecor:block/device/small_solar_panel_parts",
|
||||||
|
"tb": "engineersdecor:block/device/small_solar_panel_topbottom",
|
||||||
|
"p": "engineersdecor:block/device/small_solar_panel_panel"
|
||||||
|
},
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"from": [0, 0, 0],
|
||||||
|
"to": [16, 2, 16],
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [0, 14, 16, 16], "texture": "#2"},
|
||||||
|
"east": {"uv": [0, 14, 16, 16], "rotation": 180, "texture": "#2"},
|
||||||
|
"south": {"uv": [0, 14, 16, 16], "texture": "#2"},
|
||||||
|
"west": {"uv": [0, 14, 16, 16], "texture": "#2"},
|
||||||
|
"up": {"uv": [0, 0, 16, 16], "rotation": 90, "texture": "#tb"},
|
||||||
|
"down": {"uv": [0, 0, 16, 16], "rotation": 270, "texture": "#tb"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [1, 9.5, 0],
|
||||||
|
"to": [15, 11.5, 16],
|
||||||
|
"rotation": {"angle": -45, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [1, 4.5, 15, 6.5], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [0, 4.5, 16, 6.5], "texture": "#m"},
|
||||||
|
"south": {"uv": [1, 4.5, 15, 6.5], "texture": "#m"},
|
||||||
|
"west": {"uv": [0, 4.5, 16, 6.5], "texture": "#m"},
|
||||||
|
"up": {"uv": [1, 0, 15, 16], "texture": "#p"},
|
||||||
|
"down": {"uv": [1, 0, 15, 16], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6, 2, 11],
|
||||||
|
"to": [10, 8, 13],
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [6, 8, 10, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [3, 8, 5, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [6, 8, 10, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [11, 8, 13, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [6, 11, 10, 13], "texture": "#m"},
|
||||||
|
"down": {"uv": [6, 3, 10, 5], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6.5, 5.5, 9],
|
||||||
|
"to": [9.5, 9.5, 11],
|
||||||
|
"rotation": {"angle": -45, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [6.5, 6.5, 9.5, 10.5], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [5, 6.5, 7, 10.5], "texture": "#m"},
|
||||||
|
"south": {"uv": [6.5, 6.5, 9.5, 10.5], "texture": "#m"},
|
||||||
|
"west": {"uv": [9, 6.5, 11, 10.5], "texture": "#m"},
|
||||||
|
"up": {"uv": [6.5, 9, 9.5, 11], "texture": "#m"},
|
||||||
|
"down": {"uv": [6.5, 5, 9.5, 7], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [5, 9, 7],
|
||||||
|
"to": [11, 9.5, 9],
|
||||||
|
"rotation": {"angle": -45, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [5, 6.5, 11, 7], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [7, 6.5, 9, 7], "texture": "#m"},
|
||||||
|
"south": {"uv": [5, 6.5, 11, 7], "texture": "#m"},
|
||||||
|
"west": {"uv": [7, 6.5, 9, 7], "texture": "#m"},
|
||||||
|
"up": {"uv": [5, 7, 11, 9], "texture": "#m"},
|
||||||
|
"down": {"uv": [5, 7, 11, 9], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [2, 9, 3],
|
||||||
|
"to": [5, 9.5, 13],
|
||||||
|
"rotation": {"angle": -45, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [11, 6.5, 14, 7], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [3, 6.5, 13, 7], "texture": "#m"},
|
||||||
|
"south": {"uv": [2, 6.5, 5, 7], "texture": "#m"},
|
||||||
|
"west": {"uv": [3, 6.5, 13, 7], "texture": "#m"},
|
||||||
|
"up": {"uv": [2, 3, 5, 13], "texture": "#m"},
|
||||||
|
"down": {"uv": [2, 3, 5, 13], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [11, 9, 3],
|
||||||
|
"to": [14, 9.5, 13],
|
||||||
|
"rotation": {"angle": -45, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [2, 6.5, 5, 7], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [3, 6.5, 13, 7], "texture": "#m"},
|
||||||
|
"south": {"uv": [11, 6.5, 14, 7], "texture": "#m"},
|
||||||
|
"west": {"uv": [3, 6.5, 13, 7], "texture": "#m"},
|
||||||
|
"up": {"uv": [11, 3, 14, 13], "texture": "#m"},
|
||||||
|
"down": {"uv": [11, 3, 14, 13], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6.5, 5.5, 5],
|
||||||
|
"to": [9.5, 9.5, 7],
|
||||||
|
"rotation": {"angle": -45, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [6.5, 6.5, 9.5, 10.5], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [9, 6.5, 11, 10.5], "texture": "#m"},
|
||||||
|
"south": {"uv": [6.5, 6.5, 9.5, 10.5], "texture": "#m"},
|
||||||
|
"west": {"uv": [5, 6.5, 7, 10.5], "texture": "#m"},
|
||||||
|
"up": {"uv": [6.5, 5, 9.5, 7], "texture": "#m"},
|
||||||
|
"down": {"uv": [6.5, 9, 9.5, 11], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6, 2, 3],
|
||||||
|
"to": [10, 8, 5],
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [6, 8, 10, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [11, 8, 13, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [6, 8, 10, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [3, 8, 5, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [6, 3, 10, 5], "texture": "#m"},
|
||||||
|
"down": {"uv": [6, 11, 10, 13], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [2, 2, 3],
|
||||||
|
"to": [6, 3, 5],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [4, 8, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [10, 13, 14, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [11, 13, 13, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [2, 13, 6, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [3, 13, 5, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [2, 3, 6, 5], "texture": "#m"},
|
||||||
|
"down": {"uv": [2, 11, 6, 13], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [10, 2, 3],
|
||||||
|
"to": [14, 3, 5],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [12, 8, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [2, 13, 6, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [11, 13, 13, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [10, 13, 14, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [3, 13, 5, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [10, 3, 14, 5], "texture": "#m"},
|
||||||
|
"down": {"uv": [10, 11, 14, 13], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [10, 2, 11],
|
||||||
|
"to": [14, 3, 13],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [12, 8, 16]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [2, 13, 6, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [3, 13, 5, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [10, 13, 14, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [11, 13, 13, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [10, 11, 14, 13], "texture": "#m"},
|
||||||
|
"down": {"uv": [10, 3, 14, 5], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [2, 2, 11],
|
||||||
|
"to": [6, 3, 13],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [4, 8, 16]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [10, 13, 14, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [3, 13, 5, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [2, 13, 6, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [11, 13, 13, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [2, 11, 6, 13], "texture": "#m"},
|
||||||
|
"down": {"uv": [2, 3, 6, 5], "texture": "#m"}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"display": {
|
||||||
|
"thirdperson_righthand": {
|
||||||
|
"rotation": [85, 3, -10],
|
||||||
|
"translation": [1.75, -0.75, -2.25],
|
||||||
|
"scale": [0.35, 0.35, 0.35]
|
||||||
|
},
|
||||||
|
"ground": {
|
||||||
|
"translation": [0, -0.75, 0],
|
||||||
|
"scale": [0.2, 0.2, 0.2]
|
||||||
|
},
|
||||||
|
"gui": {
|
||||||
|
"rotation": [30, 225, 0],
|
||||||
|
"scale": [0.625, 0.625, 0.625]
|
||||||
|
},
|
||||||
|
"fixed": {
|
||||||
|
"scale": [0.5, 0.5, 0.5]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,196 @@
|
||||||
|
{
|
||||||
|
"parent": "block/cube",
|
||||||
|
"textures": {
|
||||||
|
"2": "engineersdecor:block/device/small_solar_panel_side",
|
||||||
|
"m": "engineersdecor:block/device/small_solar_panel_parts",
|
||||||
|
"particle": "engineersdecor:block/device/small_solar_panel_parts",
|
||||||
|
"tb": "engineersdecor:block/device/small_solar_panel_topbottom",
|
||||||
|
"p": "engineersdecor:block/device/small_solar_panel_panel"
|
||||||
|
},
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"from": [0, 0, 0],
|
||||||
|
"to": [16, 2, 16],
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [0, 14, 16, 16], "texture": "#2"},
|
||||||
|
"east": {"uv": [0, 14, 16, 16], "rotation": 180, "texture": "#2"},
|
||||||
|
"south": {"uv": [0, 14, 16, 16], "texture": "#2"},
|
||||||
|
"west": {"uv": [0, 14, 16, 16], "texture": "#2"},
|
||||||
|
"up": {"uv": [0, 0, 16, 16], "rotation": 90, "texture": "#tb"},
|
||||||
|
"down": {"uv": [0, 0, 16, 16], "rotation": 270, "texture": "#tb"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [1, 9.5, 0],
|
||||||
|
"to": [15, 11.5, 16],
|
||||||
|
"rotation": {"angle": -22.5, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [1, 4.5, 15, 6.5], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [0, 4.5, 16, 6.5], "texture": "#m"},
|
||||||
|
"south": {"uv": [1, 4.5, 15, 6.5], "texture": "#m"},
|
||||||
|
"west": {"uv": [0, 4.5, 16, 6.5], "texture": "#m"},
|
||||||
|
"up": {"uv": [1, 0, 15, 16], "texture": "#p"},
|
||||||
|
"down": {"uv": [1, 0, 15, 16], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6, 2, 11],
|
||||||
|
"to": [10, 8, 13],
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [6, 8, 10, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [3, 8, 5, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [6, 8, 10, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [11, 8, 13, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [6, 11, 10, 13], "texture": "#m"},
|
||||||
|
"down": {"uv": [6, 3, 10, 5], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6.5, 5.5, 9],
|
||||||
|
"to": [9.5, 9.5, 11],
|
||||||
|
"rotation": {"angle": -22.5, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [6.5, 6.5, 9.5, 10.5], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [5, 6.5, 7, 10.5], "texture": "#m"},
|
||||||
|
"south": {"uv": [6.5, 6.5, 9.5, 10.5], "texture": "#m"},
|
||||||
|
"west": {"uv": [9, 6.5, 11, 10.5], "texture": "#m"},
|
||||||
|
"up": {"uv": [6.5, 9, 9.5, 11], "texture": "#m"},
|
||||||
|
"down": {"uv": [6.5, 5, 9.5, 7], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [5, 9, 7],
|
||||||
|
"to": [11, 9.5, 9],
|
||||||
|
"rotation": {"angle": -22.5, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [5, 6.5, 11, 7], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [7, 6.5, 9, 7], "texture": "#m"},
|
||||||
|
"south": {"uv": [5, 6.5, 11, 7], "texture": "#m"},
|
||||||
|
"west": {"uv": [7, 6.5, 9, 7], "texture": "#m"},
|
||||||
|
"up": {"uv": [5, 7, 11, 9], "texture": "#m"},
|
||||||
|
"down": {"uv": [5, 7, 11, 9], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [2, 9, 3],
|
||||||
|
"to": [5, 9.5, 13],
|
||||||
|
"rotation": {"angle": -22.5, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [11, 6.5, 14, 7], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [3, 6.5, 13, 7], "texture": "#m"},
|
||||||
|
"south": {"uv": [2, 6.5, 5, 7], "texture": "#m"},
|
||||||
|
"west": {"uv": [3, 6.5, 13, 7], "texture": "#m"},
|
||||||
|
"up": {"uv": [2, 3, 5, 13], "texture": "#m"},
|
||||||
|
"down": {"uv": [2, 3, 5, 13], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [11, 9, 3],
|
||||||
|
"to": [14, 9.5, 13],
|
||||||
|
"rotation": {"angle": -22.5, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [2, 6.5, 5, 7], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [3, 6.5, 13, 7], "texture": "#m"},
|
||||||
|
"south": {"uv": [11, 6.5, 14, 7], "texture": "#m"},
|
||||||
|
"west": {"uv": [3, 6.5, 13, 7], "texture": "#m"},
|
||||||
|
"up": {"uv": [11, 3, 14, 13], "texture": "#m"},
|
||||||
|
"down": {"uv": [11, 3, 14, 13], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6.5, 5.5, 5],
|
||||||
|
"to": [9.5, 9.5, 7],
|
||||||
|
"rotation": {"angle": -22.5, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [6.5, 6.5, 9.5, 10.5], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [9, 6.5, 11, 10.5], "texture": "#m"},
|
||||||
|
"south": {"uv": [6.5, 6.5, 9.5, 10.5], "texture": "#m"},
|
||||||
|
"west": {"uv": [5, 6.5, 7, 10.5], "texture": "#m"},
|
||||||
|
"up": {"uv": [6.5, 5, 9.5, 7], "texture": "#m"},
|
||||||
|
"down": {"uv": [6.5, 9, 9.5, 11], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6, 2, 3],
|
||||||
|
"to": [10, 8, 5],
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [6, 8, 10, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [11, 8, 13, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [6, 8, 10, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [3, 8, 5, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [6, 3, 10, 5], "texture": "#m"},
|
||||||
|
"down": {"uv": [6, 11, 10, 13], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [2, 2, 3],
|
||||||
|
"to": [6, 3, 5],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [4, 8, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [10, 13, 14, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [11, 13, 13, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [2, 13, 6, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [3, 13, 5, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [2, 3, 6, 5], "texture": "#m"},
|
||||||
|
"down": {"uv": [2, 11, 6, 13], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [10, 2, 3],
|
||||||
|
"to": [14, 3, 5],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [12, 8, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [2, 13, 6, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [11, 13, 13, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [10, 13, 14, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [3, 13, 5, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [10, 3, 14, 5], "texture": "#m"},
|
||||||
|
"down": {"uv": [10, 11, 14, 13], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [10, 2, 11],
|
||||||
|
"to": [14, 3, 13],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [12, 8, 16]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [2, 13, 6, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [3, 13, 5, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [10, 13, 14, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [11, 13, 13, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [10, 11, 14, 13], "texture": "#m"},
|
||||||
|
"down": {"uv": [10, 3, 14, 5], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [2, 2, 11],
|
||||||
|
"to": [6, 3, 13],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [4, 8, 16]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [10, 13, 14, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [3, 13, 5, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [2, 13, 6, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [11, 13, 13, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [2, 11, 6, 13], "texture": "#m"},
|
||||||
|
"down": {"uv": [2, 3, 6, 5], "texture": "#m"}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"display": {
|
||||||
|
"thirdperson_righthand": {
|
||||||
|
"rotation": [85, 3, -10],
|
||||||
|
"translation": [1.75, -0.75, -2.25],
|
||||||
|
"scale": [0.35, 0.35, 0.35]
|
||||||
|
},
|
||||||
|
"ground": {
|
||||||
|
"translation": [0, -0.75, 0],
|
||||||
|
"scale": [0.2, 0.2, 0.2]
|
||||||
|
},
|
||||||
|
"gui": {
|
||||||
|
"rotation": [30, 225, 0],
|
||||||
|
"scale": [0.625, 0.625, 0.625]
|
||||||
|
},
|
||||||
|
"fixed": {
|
||||||
|
"scale": [0.5, 0.5, 0.5]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,196 @@
|
||||||
|
{
|
||||||
|
"parent": "block/cube",
|
||||||
|
"textures": {
|
||||||
|
"2": "engineersdecor:block/device/small_solar_panel_side",
|
||||||
|
"m": "engineersdecor:block/device/small_solar_panel_parts",
|
||||||
|
"particle": "engineersdecor:block/device/small_solar_panel_parts",
|
||||||
|
"tb": "engineersdecor:block/device/small_solar_panel_topbottom",
|
||||||
|
"p": "engineersdecor:block/device/small_solar_panel_panel"
|
||||||
|
},
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"from": [0, 0, 0],
|
||||||
|
"to": [16, 2, 16],
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [0, 14, 16, 16], "texture": "#2"},
|
||||||
|
"east": {"uv": [0, 14, 16, 16], "rotation": 180, "texture": "#2"},
|
||||||
|
"south": {"uv": [0, 14, 16, 16], "texture": "#2"},
|
||||||
|
"west": {"uv": [0, 14, 16, 16], "texture": "#2"},
|
||||||
|
"up": {"uv": [0, 0, 16, 16], "rotation": 90, "texture": "#tb"},
|
||||||
|
"down": {"uv": [0, 0, 16, 16], "rotation": 270, "texture": "#tb"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [1, 9.5, 0],
|
||||||
|
"to": [15, 11.5, 16],
|
||||||
|
"rotation": {"angle": 0, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [1, 4.5, 15, 6.5], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [0, 4.5, 16, 6.5], "texture": "#m"},
|
||||||
|
"south": {"uv": [1, 4.5, 15, 6.5], "texture": "#m"},
|
||||||
|
"west": {"uv": [0, 4.5, 16, 6.5], "texture": "#m"},
|
||||||
|
"up": {"uv": [1, 0, 15, 16], "texture": "#p"},
|
||||||
|
"down": {"uv": [1, 0, 15, 16], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6, 2, 11],
|
||||||
|
"to": [10, 8, 13],
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [6, 8, 10, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [3, 8, 5, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [6, 8, 10, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [11, 8, 13, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [6, 11, 10, 13], "texture": "#m"},
|
||||||
|
"down": {"uv": [6, 3, 10, 5], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6.5, 5.5, 9],
|
||||||
|
"to": [9.5, 9.5, 11],
|
||||||
|
"rotation": {"angle": 0, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [6.5, 6.5, 9.5, 10.5], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [5, 6.5, 7, 10.5], "texture": "#m"},
|
||||||
|
"south": {"uv": [6.5, 6.5, 9.5, 10.5], "texture": "#m"},
|
||||||
|
"west": {"uv": [9, 6.5, 11, 10.5], "texture": "#m"},
|
||||||
|
"up": {"uv": [6.5, 9, 9.5, 11], "texture": "#m"},
|
||||||
|
"down": {"uv": [6.5, 5, 9.5, 7], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [5, 9, 7],
|
||||||
|
"to": [11, 9.5, 9],
|
||||||
|
"rotation": {"angle": 0, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [5, 6.5, 11, 7], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [7, 6.5, 9, 7], "texture": "#m"},
|
||||||
|
"south": {"uv": [5, 6.5, 11, 7], "texture": "#m"},
|
||||||
|
"west": {"uv": [7, 6.5, 9, 7], "texture": "#m"},
|
||||||
|
"up": {"uv": [5, 7, 11, 9], "texture": "#m"},
|
||||||
|
"down": {"uv": [5, 7, 11, 9], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [2, 9, 3],
|
||||||
|
"to": [5, 9.5, 13],
|
||||||
|
"rotation": {"angle": 0, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [11, 6.5, 14, 7], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [3, 6.5, 13, 7], "texture": "#m"},
|
||||||
|
"south": {"uv": [2, 6.5, 5, 7], "texture": "#m"},
|
||||||
|
"west": {"uv": [3, 6.5, 13, 7], "texture": "#m"},
|
||||||
|
"up": {"uv": [2, 3, 5, 13], "texture": "#m"},
|
||||||
|
"down": {"uv": [2, 3, 5, 13], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [11, 9, 3],
|
||||||
|
"to": [14, 9.5, 13],
|
||||||
|
"rotation": {"angle": 0, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [2, 6.5, 5, 7], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [3, 6.5, 13, 7], "texture": "#m"},
|
||||||
|
"south": {"uv": [11, 6.5, 14, 7], "texture": "#m"},
|
||||||
|
"west": {"uv": [3, 6.5, 13, 7], "texture": "#m"},
|
||||||
|
"up": {"uv": [11, 3, 14, 13], "texture": "#m"},
|
||||||
|
"down": {"uv": [11, 3, 14, 13], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6.5, 5.5, 5],
|
||||||
|
"to": [9.5, 9.5, 7],
|
||||||
|
"rotation": {"angle": 0, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [6.5, 6.5, 9.5, 10.5], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [9, 6.5, 11, 10.5], "texture": "#m"},
|
||||||
|
"south": {"uv": [6.5, 6.5, 9.5, 10.5], "texture": "#m"},
|
||||||
|
"west": {"uv": [5, 6.5, 7, 10.5], "texture": "#m"},
|
||||||
|
"up": {"uv": [6.5, 5, 9.5, 7], "texture": "#m"},
|
||||||
|
"down": {"uv": [6.5, 9, 9.5, 11], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6, 2, 3],
|
||||||
|
"to": [10, 8, 5],
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [6, 8, 10, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [11, 8, 13, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [6, 8, 10, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [3, 8, 5, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [6, 3, 10, 5], "texture": "#m"},
|
||||||
|
"down": {"uv": [6, 11, 10, 13], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [2, 2, 3],
|
||||||
|
"to": [6, 3, 5],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [4, 8, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [10, 13, 14, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [11, 13, 13, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [2, 13, 6, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [3, 13, 5, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [2, 3, 6, 5], "texture": "#m"},
|
||||||
|
"down": {"uv": [2, 11, 6, 13], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [10, 2, 3],
|
||||||
|
"to": [14, 3, 5],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [12, 8, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [2, 13, 6, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [11, 13, 13, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [10, 13, 14, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [3, 13, 5, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [10, 3, 14, 5], "texture": "#m"},
|
||||||
|
"down": {"uv": [10, 11, 14, 13], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [10, 2, 11],
|
||||||
|
"to": [14, 3, 13],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [12, 8, 16]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [2, 13, 6, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [3, 13, 5, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [10, 13, 14, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [11, 13, 13, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [10, 11, 14, 13], "texture": "#m"},
|
||||||
|
"down": {"uv": [10, 3, 14, 5], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [2, 2, 11],
|
||||||
|
"to": [6, 3, 13],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [4, 8, 16]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [10, 13, 14, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [3, 13, 5, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [2, 13, 6, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [11, 13, 13, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [2, 11, 6, 13], "texture": "#m"},
|
||||||
|
"down": {"uv": [2, 3, 6, 5], "texture": "#m"}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"display": {
|
||||||
|
"thirdperson_righthand": {
|
||||||
|
"rotation": [85, 3, -10],
|
||||||
|
"translation": [1.75, -0.75, -2.25],
|
||||||
|
"scale": [0.35, 0.35, 0.35]
|
||||||
|
},
|
||||||
|
"ground": {
|
||||||
|
"translation": [0, -0.75, 0],
|
||||||
|
"scale": [0.2, 0.2, 0.2]
|
||||||
|
},
|
||||||
|
"gui": {
|
||||||
|
"rotation": [30, 225, 0],
|
||||||
|
"scale": [0.625, 0.625, 0.625]
|
||||||
|
},
|
||||||
|
"fixed": {
|
||||||
|
"scale": [0.5, 0.5, 0.5]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,196 @@
|
||||||
|
{
|
||||||
|
"parent": "block/cube",
|
||||||
|
"textures": {
|
||||||
|
"2": "engineersdecor:block/device/small_solar_panel_side",
|
||||||
|
"m": "engineersdecor:block/device/small_solar_panel_parts",
|
||||||
|
"particle": "engineersdecor:block/device/small_solar_panel_parts",
|
||||||
|
"tb": "engineersdecor:block/device/small_solar_panel_topbottom",
|
||||||
|
"p": "engineersdecor:block/device/small_solar_panel_panel"
|
||||||
|
},
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"from": [0, 0, 0],
|
||||||
|
"to": [16, 2, 16],
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [0, 14, 16, 16], "texture": "#2"},
|
||||||
|
"east": {"uv": [0, 14, 16, 16], "rotation": 180, "texture": "#2"},
|
||||||
|
"south": {"uv": [0, 14, 16, 16], "texture": "#2"},
|
||||||
|
"west": {"uv": [0, 14, 16, 16], "texture": "#2"},
|
||||||
|
"up": {"uv": [0, 0, 16, 16], "rotation": 90, "texture": "#tb"},
|
||||||
|
"down": {"uv": [0, 0, 16, 16], "rotation": 270, "texture": "#tb"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [1, 9.5, 0],
|
||||||
|
"to": [15, 11.5, 16],
|
||||||
|
"rotation": {"angle": 22.5, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [1, 4.5, 15, 6.5], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [0, 4.5, 16, 6.5], "texture": "#m"},
|
||||||
|
"south": {"uv": [1, 4.5, 15, 6.5], "texture": "#m"},
|
||||||
|
"west": {"uv": [0, 4.5, 16, 6.5], "texture": "#m"},
|
||||||
|
"up": {"uv": [1, 0, 15, 16], "texture": "#p"},
|
||||||
|
"down": {"uv": [1, 0, 15, 16], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6, 2, 11],
|
||||||
|
"to": [10, 8, 13],
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [6, 8, 10, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [3, 8, 5, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [6, 8, 10, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [11, 8, 13, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [6, 11, 10, 13], "texture": "#m"},
|
||||||
|
"down": {"uv": [6, 3, 10, 5], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6.5, 5.5, 9],
|
||||||
|
"to": [9.5, 9.5, 11],
|
||||||
|
"rotation": {"angle": 22.5, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [6.5, 6.5, 9.5, 10.5], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [5, 6.5, 7, 10.5], "texture": "#m"},
|
||||||
|
"south": {"uv": [6.5, 6.5, 9.5, 10.5], "texture": "#m"},
|
||||||
|
"west": {"uv": [9, 6.5, 11, 10.5], "texture": "#m"},
|
||||||
|
"up": {"uv": [6.5, 9, 9.5, 11], "texture": "#m"},
|
||||||
|
"down": {"uv": [6.5, 5, 9.5, 7], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [5, 9, 7],
|
||||||
|
"to": [11, 9.5, 9],
|
||||||
|
"rotation": {"angle": 22.5, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [5, 6.5, 11, 7], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [7, 6.5, 9, 7], "texture": "#m"},
|
||||||
|
"south": {"uv": [5, 6.5, 11, 7], "texture": "#m"},
|
||||||
|
"west": {"uv": [7, 6.5, 9, 7], "texture": "#m"},
|
||||||
|
"up": {"uv": [5, 7, 11, 9], "texture": "#m"},
|
||||||
|
"down": {"uv": [5, 7, 11, 9], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [2, 9, 3],
|
||||||
|
"to": [5, 9.5, 13],
|
||||||
|
"rotation": {"angle": 22.5, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [11, 6.5, 14, 7], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [3, 6.5, 13, 7], "texture": "#m"},
|
||||||
|
"south": {"uv": [2, 6.5, 5, 7], "texture": "#m"},
|
||||||
|
"west": {"uv": [3, 6.5, 13, 7], "texture": "#m"},
|
||||||
|
"up": {"uv": [2, 3, 5, 13], "texture": "#m"},
|
||||||
|
"down": {"uv": [2, 3, 5, 13], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [11, 9, 3],
|
||||||
|
"to": [14, 9.5, 13],
|
||||||
|
"rotation": {"angle": 22.5, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [2, 6.5, 5, 7], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [3, 6.5, 13, 7], "texture": "#m"},
|
||||||
|
"south": {"uv": [11, 6.5, 14, 7], "texture": "#m"},
|
||||||
|
"west": {"uv": [3, 6.5, 13, 7], "texture": "#m"},
|
||||||
|
"up": {"uv": [11, 3, 14, 13], "texture": "#m"},
|
||||||
|
"down": {"uv": [11, 3, 14, 13], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6.5, 5.5, 5],
|
||||||
|
"to": [9.5, 9.5, 7],
|
||||||
|
"rotation": {"angle": 22.5, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [6.5, 6.5, 9.5, 10.5], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [9, 6.5, 11, 10.5], "texture": "#m"},
|
||||||
|
"south": {"uv": [6.5, 6.5, 9.5, 10.5], "texture": "#m"},
|
||||||
|
"west": {"uv": [5, 6.5, 7, 10.5], "texture": "#m"},
|
||||||
|
"up": {"uv": [6.5, 5, 9.5, 7], "texture": "#m"},
|
||||||
|
"down": {"uv": [6.5, 9, 9.5, 11], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6, 2, 3],
|
||||||
|
"to": [10, 8, 5],
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [6, 8, 10, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [11, 8, 13, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [6, 8, 10, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [3, 8, 5, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [6, 3, 10, 5], "texture": "#m"},
|
||||||
|
"down": {"uv": [6, 11, 10, 13], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [2, 2, 3],
|
||||||
|
"to": [6, 3, 5],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [4, 8, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [10, 13, 14, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [11, 13, 13, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [2, 13, 6, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [3, 13, 5, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [2, 3, 6, 5], "texture": "#m"},
|
||||||
|
"down": {"uv": [2, 11, 6, 13], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [10, 2, 3],
|
||||||
|
"to": [14, 3, 5],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [12, 8, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [2, 13, 6, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [11, 13, 13, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [10, 13, 14, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [3, 13, 5, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [10, 3, 14, 5], "texture": "#m"},
|
||||||
|
"down": {"uv": [10, 11, 14, 13], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [10, 2, 11],
|
||||||
|
"to": [14, 3, 13],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [12, 8, 16]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [2, 13, 6, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [3, 13, 5, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [10, 13, 14, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [11, 13, 13, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [10, 11, 14, 13], "texture": "#m"},
|
||||||
|
"down": {"uv": [10, 3, 14, 5], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [2, 2, 11],
|
||||||
|
"to": [6, 3, 13],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [4, 8, 16]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [10, 13, 14, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [3, 13, 5, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [2, 13, 6, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [11, 13, 13, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [2, 11, 6, 13], "texture": "#m"},
|
||||||
|
"down": {"uv": [2, 3, 6, 5], "texture": "#m"}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"display": {
|
||||||
|
"thirdperson_righthand": {
|
||||||
|
"rotation": [85, 3, -10],
|
||||||
|
"translation": [1.75, -0.75, -2.25],
|
||||||
|
"scale": [0.35, 0.35, 0.35]
|
||||||
|
},
|
||||||
|
"ground": {
|
||||||
|
"translation": [0, -0.75, 0],
|
||||||
|
"scale": [0.2, 0.2, 0.2]
|
||||||
|
},
|
||||||
|
"gui": {
|
||||||
|
"rotation": [30, 225, 0],
|
||||||
|
"scale": [0.625, 0.625, 0.625]
|
||||||
|
},
|
||||||
|
"fixed": {
|
||||||
|
"scale": [0.5, 0.5, 0.5]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,196 @@
|
||||||
|
{
|
||||||
|
"parent": "block/cube",
|
||||||
|
"textures": {
|
||||||
|
"2": "engineersdecor:block/device/small_solar_panel_side",
|
||||||
|
"m": "engineersdecor:block/device/small_solar_panel_parts",
|
||||||
|
"particle": "engineersdecor:block/device/small_solar_panel_parts",
|
||||||
|
"tb": "engineersdecor:block/device/small_solar_panel_topbottom",
|
||||||
|
"p": "engineersdecor:block/device/small_solar_panel_panel"
|
||||||
|
},
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"from": [0, 0, 0],
|
||||||
|
"to": [16, 2, 16],
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [0, 14, 16, 16], "texture": "#2"},
|
||||||
|
"east": {"uv": [0, 14, 16, 16], "rotation": 180, "texture": "#2"},
|
||||||
|
"south": {"uv": [0, 14, 16, 16], "texture": "#2"},
|
||||||
|
"west": {"uv": [0, 14, 16, 16], "texture": "#2"},
|
||||||
|
"up": {"uv": [0, 0, 16, 16], "rotation": 90, "texture": "#tb"},
|
||||||
|
"down": {"uv": [0, 0, 16, 16], "rotation": 270, "texture": "#tb"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [1, 9.5, 0],
|
||||||
|
"to": [15, 11.5, 16],
|
||||||
|
"rotation": {"angle": 45, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [1, 4.5, 15, 6.5], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [0, 4.5, 16, 6.5], "texture": "#m"},
|
||||||
|
"south": {"uv": [1, 4.5, 15, 6.5], "texture": "#m"},
|
||||||
|
"west": {"uv": [0, 4.5, 16, 6.5], "texture": "#m"},
|
||||||
|
"up": {"uv": [1, 0, 15, 16], "texture": "#p"},
|
||||||
|
"down": {"uv": [1, 0, 15, 16], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6, 2, 11],
|
||||||
|
"to": [10, 8, 13],
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [6, 8, 10, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [3, 8, 5, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [6, 8, 10, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [11, 8, 13, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [6, 11, 10, 13], "texture": "#m"},
|
||||||
|
"down": {"uv": [6, 3, 10, 5], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6.5, 5.5, 9],
|
||||||
|
"to": [9.5, 9.5, 11],
|
||||||
|
"rotation": {"angle": 45, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [6.5, 6.5, 9.5, 10.5], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [5, 6.5, 7, 10.5], "texture": "#m"},
|
||||||
|
"south": {"uv": [6.5, 6.5, 9.5, 10.5], "texture": "#m"},
|
||||||
|
"west": {"uv": [9, 6.5, 11, 10.5], "texture": "#m"},
|
||||||
|
"up": {"uv": [6.5, 9, 9.5, 11], "texture": "#m"},
|
||||||
|
"down": {"uv": [6.5, 5, 9.5, 7], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [5, 9, 7],
|
||||||
|
"to": [11, 9.5, 9],
|
||||||
|
"rotation": {"angle": 45, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [5, 6.5, 11, 7], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [7, 6.5, 9, 7], "texture": "#m"},
|
||||||
|
"south": {"uv": [5, 6.5, 11, 7], "texture": "#m"},
|
||||||
|
"west": {"uv": [7, 6.5, 9, 7], "texture": "#m"},
|
||||||
|
"up": {"uv": [5, 7, 11, 9], "texture": "#m"},
|
||||||
|
"down": {"uv": [5, 7, 11, 9], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [2, 9, 3],
|
||||||
|
"to": [5, 9.5, 13],
|
||||||
|
"rotation": {"angle": 45, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [11, 6.5, 14, 7], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [3, 6.5, 13, 7], "texture": "#m"},
|
||||||
|
"south": {"uv": [2, 6.5, 5, 7], "texture": "#m"},
|
||||||
|
"west": {"uv": [3, 6.5, 13, 7], "texture": "#m"},
|
||||||
|
"up": {"uv": [2, 3, 5, 13], "texture": "#m"},
|
||||||
|
"down": {"uv": [2, 3, 5, 13], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [11, 9, 3],
|
||||||
|
"to": [14, 9.5, 13],
|
||||||
|
"rotation": {"angle": 45, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [2, 6.5, 5, 7], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [3, 6.5, 13, 7], "texture": "#m"},
|
||||||
|
"south": {"uv": [11, 6.5, 14, 7], "texture": "#m"},
|
||||||
|
"west": {"uv": [3, 6.5, 13, 7], "texture": "#m"},
|
||||||
|
"up": {"uv": [11, 3, 14, 13], "texture": "#m"},
|
||||||
|
"down": {"uv": [11, 3, 14, 13], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6.5, 5.5, 5],
|
||||||
|
"to": [9.5, 9.5, 7],
|
||||||
|
"rotation": {"angle": 45, "axis": "z", "origin": [8, 7, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [6.5, 6.5, 9.5, 10.5], "rotation": 180, "texture": "#m"},
|
||||||
|
"east": {"uv": [9, 6.5, 11, 10.5], "texture": "#m"},
|
||||||
|
"south": {"uv": [6.5, 6.5, 9.5, 10.5], "texture": "#m"},
|
||||||
|
"west": {"uv": [5, 6.5, 7, 10.5], "texture": "#m"},
|
||||||
|
"up": {"uv": [6.5, 5, 9.5, 7], "texture": "#m"},
|
||||||
|
"down": {"uv": [6.5, 9, 9.5, 11], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6, 2, 3],
|
||||||
|
"to": [10, 8, 5],
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [6, 8, 10, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [11, 8, 13, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [6, 8, 10, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [3, 8, 5, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [6, 3, 10, 5], "texture": "#m"},
|
||||||
|
"down": {"uv": [6, 11, 10, 13], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [2, 2, 3],
|
||||||
|
"to": [6, 3, 5],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [4, 8, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [10, 13, 14, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [11, 13, 13, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [2, 13, 6, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [3, 13, 5, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [2, 3, 6, 5], "texture": "#m"},
|
||||||
|
"down": {"uv": [2, 11, 6, 13], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [10, 2, 3],
|
||||||
|
"to": [14, 3, 5],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [12, 8, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [2, 13, 6, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [11, 13, 13, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [10, 13, 14, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [3, 13, 5, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [10, 3, 14, 5], "texture": "#m"},
|
||||||
|
"down": {"uv": [10, 11, 14, 13], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [10, 2, 11],
|
||||||
|
"to": [14, 3, 13],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [12, 8, 16]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [2, 13, 6, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [3, 13, 5, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [10, 13, 14, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [11, 13, 13, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [10, 11, 14, 13], "texture": "#m"},
|
||||||
|
"down": {"uv": [10, 3, 14, 5], "texture": "#m"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [2, 2, 11],
|
||||||
|
"to": [6, 3, 13],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [4, 8, 16]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [10, 13, 14, 14], "rotation": 180, "texture": "#2"},
|
||||||
|
"east": {"uv": [3, 13, 5, 14], "texture": "#m"},
|
||||||
|
"south": {"uv": [2, 13, 6, 14], "texture": "#2"},
|
||||||
|
"west": {"uv": [11, 13, 13, 14], "texture": "#m"},
|
||||||
|
"up": {"uv": [2, 11, 6, 13], "texture": "#m"},
|
||||||
|
"down": {"uv": [2, 3, 6, 5], "texture": "#m"}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"display": {
|
||||||
|
"thirdperson_righthand": {
|
||||||
|
"rotation": [85, 3, -10],
|
||||||
|
"translation": [1.75, -0.75, -2.25],
|
||||||
|
"scale": [0.35, 0.35, 0.35]
|
||||||
|
},
|
||||||
|
"ground": {
|
||||||
|
"translation": [0, -0.75, 0],
|
||||||
|
"scale": [0.2, 0.2, 0.2]
|
||||||
|
},
|
||||||
|
"gui": {
|
||||||
|
"rotation": [30, 225, 0],
|
||||||
|
"scale": [0.625, 0.625, 0.625]
|
||||||
|
},
|
||||||
|
"fixed": {
|
||||||
|
"scale": [0.5, 0.5, 0.5]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1 @@
|
||||||
|
{ "parent": "engineersdecor:block/device/small_solar_panel_model_exp0" }
|
After Width: | Height: | Size: 539 B |
After Width: | Height: | Size: 412 B |
After Width: | Height: | Size: 282 B |
After Width: | Height: | Size: 581 B |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
|
@ -0,0 +1,23 @@
|
||||||
|
{
|
||||||
|
"conditions": [
|
||||||
|
{
|
||||||
|
"type": "engineersdecor:optional",
|
||||||
|
"result": "engineersdecor:small_solar_panel",
|
||||||
|
"missing": ["immersiveengineering:metal_device1"]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type": "minecraft:crafting_shaped",
|
||||||
|
"pattern": [
|
||||||
|
"QQQ",
|
||||||
|
" S ",
|
||||||
|
"SRS"
|
||||||
|
],
|
||||||
|
"key": {
|
||||||
|
"Q": { "item": "minecraft:quartz" },
|
||||||
|
"S": { "item": "minecraft:iron_ingot" },
|
||||||
|
"R": { "item": "minecraft:redstone_block" }
|
||||||
|
},
|
||||||
|
"result": {
|
||||||
|
"item": "engineersdecor:small_solar_panel"
|
||||||
|
}
|
||||||
|
}
|
Before Width: | Height: | Size: 308 KiB After Width: | Height: | Size: 206 KiB |
Before Width: | Height: | Size: 307 KiB |
Before Width: | Height: | Size: 226 KiB |
Before Width: | Height: | Size: 162 KiB After Width: | Height: | Size: 208 KiB |
After Width: | Height: | Size: 191 KiB |
Before Width: | Height: | Size: 172 KiB After Width: | Height: | Size: 157 KiB |
Before Width: | Height: | Size: 279 KiB After Width: | Height: | Size: 224 KiB |
Before Width: | Height: | Size: 304 KiB After Width: | Height: | Size: 206 KiB |
BIN
documentation/engineers-decor-v103-treatedwood-pole.png
Normal file
After Width: | Height: | Size: 216 KiB |
BIN
documentation/engineers-decor-v103-windows.png
Normal file
After Width: | Height: | Size: 242 KiB |
Before Width: | Height: | Size: 219 KiB After Width: | Height: | Size: 198 KiB |
BIN
documentation/engineers-decor-v104a-double_t_supports.png
Normal file
After Width: | Height: | Size: 284 KiB |
BIN
documentation/engineers-decor-v104a-redstone-valves.png
Normal file
After Width: | Height: | Size: 191 KiB |
BIN
documentation/engineers-decor-v104a-steelpoles.png
Normal file
After Width: | Height: | Size: 206 KiB |
BIN
documentation/engineers-decor-v105a-e-furnace-gui.png
Normal file
After Width: | Height: | Size: 116 KiB |
BIN
documentation/engineers-decor-v105a-e-furnace.png
Normal file
After Width: | Height: | Size: 162 KiB |
BIN
documentation/engineers-decor-v106a-factorydropper.png
Normal file
After Width: | Height: | Size: 235 KiB |
BIN
documentation/engineers-decor-v106a-wasteincinerator-gui.png
Normal file
After Width: | Height: | Size: 138 KiB |
BIN
documentation/engineers-decor-v106a-wasteincinerator.png
Normal file
After Width: | Height: | Size: 175 KiB |
BIN
documentation/factory-dropper-directional.png
Normal file
After Width: | Height: | Size: 85 KiB |
BIN
documentation/factory-dropper-gui.png
Normal file
After Width: | Height: | Size: 128 KiB |
BIN
documentation/factory-dropper-metal-press-compression.png
Normal file
After Width: | Height: | Size: 410 KiB |
25
documentation/readme.md
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
|
||||||
|
## Engineer's Decor screenshots
|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
BIN
documentation/small-mineral-smelter-vanilla-automated.png
Normal file
After Width: | Height: | Size: 222 KiB |