Texture variations for walls.
|
@ -4,4 +4,4 @@ org.gradle.jvmargs=-Xmx8G
|
||||||
version_minecraft=1.12.2
|
version_minecraft=1.12.2
|
||||||
version_forge=14.23.5.2768
|
version_forge=14.23.5.2768
|
||||||
version_jei=4.10.0.198
|
version_jei=4.10.0.198
|
||||||
version_engineersdecor=1.0.4-b1
|
version_engineersdecor=1.0.4-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.12.2": {
|
"1.12.2": {
|
||||||
|
"1.0.4-b2": "[A] Added position dependent texture variation to clinker wall, slag brick wall and rebar concrete wall.",
|
||||||
"1.0.4-b1": "[A] Crafting table: JEI integration for recipe placement added.\n[A] Crafting table: History re-fab added, allowing to quickly select and re-craft recent recipes. Selection with arrow buttons, ingredient placement by clicking the result slot. Automatic item distribution on shift-click. Quick-move buttons.\n[F] Crafting table textures modified to prevent optifine glitches on the edges of the legs.",
|
"1.0.4-b1": "[A] Crafting table: JEI integration for recipe placement added.\n[A] Crafting table: History re-fab added, allowing to quickly select and re-craft recent recipes. Selection with arrow buttons, ingredient placement by clicking the result slot. Automatic item distribution on shift-click. Quick-move buttons.\n[F] Crafting table textures modified to prevent optifine glitches on the edges of the legs.",
|
||||||
"1.0.3": "[R] Release based on v1.0.3-b5. Release-to-release changes: * Small laboratory furnace added. * Extensive config options for mod packing and tuning added. * Rendering issues fixes (window bleeding, optifine). * Steel framed window added. * Treated wood pole \"end pieces\" added (two support variants). * Sitting on treated wood stool added including mobs (but not villagers, as these are obviously very upright people). * Lang ru_ru added (github contribution from Yaroslavik). * Creative tab logo changed to mod logo. * Table/crafting table bounding boxes refined. * Standalone \"escape\" recipes added if IE is not installed.",
|
"1.0.3": "[R] Release based on v1.0.3-b5. Release-to-release changes: * Small laboratory furnace added. * Extensive config options for mod packing and tuning added. * Rendering issues fixes (window bleeding, optifine). * Steel framed window added. * Treated wood pole \"end pieces\" added (two support variants). * Sitting on treated wood stool added including mobs (but not villagers, as these are obviously very upright people). * Lang ru_ru added (github contribution from Yaroslavik). * Creative tab logo changed to mod logo. * Table/crafting table bounding boxes refined. * Standalone \"escape\" recipes added if IE is not installed.",
|
||||||
"1.0.3-b5": "[F] Fixed typo in en-en lang file.\n[F] Fixed IE concrete texture missing bailout in log if IE is not installed.\n[F] Using forge multi-layer models for windows to circumvent glitches.\n[M] Changed creative tab logo to the mod logo.\n[A] Added alternative recipes for crafting table and furnace if main IE ingredients are missing (for \"stand-alone\" mod usage).",
|
"1.0.3-b5": "[F] Fixed typo in en-en lang file.\n[F] Fixed IE concrete texture missing bailout in log if IE is not installed.\n[F] Using forge multi-layer models for windows to circumvent glitches.\n[M] Changed creative tab logo to the mod logo.\n[A] Added alternative recipes for crafting table and furnace if main IE ingredients are missing (for \"stand-alone\" mod usage).",
|
||||||
|
@ -25,6 +26,6 @@
|
||||||
},
|
},
|
||||||
"promos": {
|
"promos": {
|
||||||
"1.12.2-recommended": "1.0.3",
|
"1.12.2-recommended": "1.0.3",
|
||||||
"1.12.2-latest": "1.0.4-b1"
|
"1.12.2-latest": "1.0.4-b2"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -10,6 +10,9 @@ Mod sources for Minecraft version 1.12.2.
|
||||||
----
|
----
|
||||||
## Revision history
|
## Revision history
|
||||||
|
|
||||||
|
- v1.0.4-b2 [A] Added position dependent texture variation to clinker wall,
|
||||||
|
slag brick wall and rebar concrete wall.
|
||||||
|
|
||||||
- v1.0.4-b1 [A] Crafting table: JEI integration for recipe placement added.
|
- v1.0.4-b1 [A] Crafting table: JEI integration for recipe placement added.
|
||||||
[A] Crafting table: History re-fab added, allowing to quickly select
|
[A] Crafting table: History re-fab added, allowing to quickly select
|
||||||
and re-craft recent recipes. Selection with arrow buttons,
|
and re-craft recent recipes. Selection with arrow buttons,
|
||||||
|
|
|
@ -8,11 +8,10 @@
|
||||||
*/
|
*/
|
||||||
package wile.engineersdecor;
|
package wile.engineersdecor;
|
||||||
|
|
||||||
import wile.engineersdecor.detail.ModConfig;
|
import net.minecraft.item.crafting.IRecipe;
|
||||||
import wile.engineersdecor.detail.ExtItems;
|
import wile.engineersdecor.detail.*;
|
||||||
import wile.engineersdecor.detail.Networking;
|
|
||||||
import wile.engineersdecor.detail.RecipeCondModSpecific;
|
|
||||||
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;
|
||||||
|
@ -39,6 +38,7 @@ import net.minecraftforge.event.RegistryEvent;
|
||||||
import net.minecraftforge.client.event.ModelRegistryEvent;
|
import net.minecraftforge.client.event.ModelRegistryEvent;
|
||||||
import net.minecraftforge.fml.relauncher.SideOnly;
|
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||||
import org.apache.logging.log4j.Logger;
|
import org.apache.logging.log4j.Logger;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
|
|
||||||
|
@ -126,12 +126,16 @@ public class ModEngineersDecor
|
||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
public static void registerItems(final RegistryEvent.Register<Item> event)
|
public static void registerItems(final RegistryEvent.Register<Item> event)
|
||||||
{ ModBlocks.registerItemBlocks(event); }
|
{ ModBlocks.registerItemBlocks(event); ModItems.registerItems(event); }
|
||||||
|
|
||||||
|
@SubscribeEvent
|
||||||
|
public static void registerRecipes(RegistryEvent.Register<IRecipe> event)
|
||||||
|
{ ModRecipes.registerRecipes(event); }
|
||||||
|
|
||||||
@SideOnly(Side.CLIENT)
|
@SideOnly(Side.CLIENT)
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
public static void registerModels(final ModelRegistryEvent event)
|
public static void registerModels(final ModelRegistryEvent event)
|
||||||
{ ModBlocks.initModels(); }
|
{ ModBlocks.initModels(); ModItems.initModels(); }
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final CreativeTabs CREATIVE_TAB_ENGINEERSDECOR = (new CreativeTabs("tabengineersdecor") {
|
public static final CreativeTabs CREATIVE_TAB_ENGINEERSDECOR = (new CreativeTabs("tabengineersdecor") {
|
||||||
|
|
|
@ -12,6 +12,7 @@ import net.minecraft.block.*;
|
||||||
import net.minecraft.block.material.Material;
|
import net.minecraft.block.material.Material;
|
||||||
import net.minecraft.block.properties.IProperty;
|
import net.minecraft.block.properties.IProperty;
|
||||||
import net.minecraft.block.properties.PropertyBool;
|
import net.minecraft.block.properties.PropertyBool;
|
||||||
|
import net.minecraft.block.properties.PropertyInteger;
|
||||||
import net.minecraft.block.state.BlockFaceShape;
|
import net.minecraft.block.state.BlockFaceShape;
|
||||||
import net.minecraft.block.state.BlockStateContainer;
|
import net.minecraft.block.state.BlockStateContainer;
|
||||||
import net.minecraft.block.state.IBlockState;
|
import net.minecraft.block.state.IBlockState;
|
||||||
|
@ -41,6 +42,7 @@ public class BlockDecorWall extends BlockDecor
|
||||||
public static final PropertyBool EAST = BlockWall.EAST;
|
public static final PropertyBool EAST = BlockWall.EAST;
|
||||||
public static final PropertyBool SOUTH = BlockWall.SOUTH;
|
public static final PropertyBool SOUTH = BlockWall.SOUTH;
|
||||||
public static final PropertyBool WEST = BlockWall.WEST;
|
public static final PropertyBool WEST = BlockWall.WEST;
|
||||||
|
public static final PropertyInteger TEXTURE_VARIANT = PropertyInteger.create("tvariant", 0, 7);
|
||||||
|
|
||||||
private static final double d_0 = 0.0d;
|
private static final double d_0 = 0.0d;
|
||||||
private static final double d_1 = 1.0d;
|
private static final double d_1 = 1.0d;
|
||||||
|
@ -165,12 +167,13 @@ public class BlockDecorWall extends BlockDecor
|
||||||
boolean s = canWallConnectTo(world, pos, EnumFacing.SOUTH);
|
boolean s = canWallConnectTo(world, pos, EnumFacing.SOUTH);
|
||||||
boolean w = canWallConnectTo(world, pos, EnumFacing.WEST);
|
boolean w = canWallConnectTo(world, pos, EnumFacing.WEST);
|
||||||
boolean nopole = (n && s && !e && !w) || (!n && !s && e && w);
|
boolean nopole = (n && s && !e && !w) || (!n && !s && e && w);
|
||||||
return state.withProperty(UP,!nopole).withProperty(NORTH, n).withProperty(EAST, e).withProperty(SOUTH, s).withProperty(WEST, w);
|
long prnd = pos.toLong(); prnd = (prnd>>29) ^ (prnd>>17) ^ (prnd>>9) ^ (prnd>>4) ^ pos.getX() ^ pos.getY() ^ pos.getZ();
|
||||||
|
return state.withProperty(UP,!nopole).withProperty(NORTH, n).withProperty(EAST, e).withProperty(SOUTH, s).withProperty(WEST, w).withProperty(TEXTURE_VARIANT, ((int)prnd) & 0x7);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected BlockStateContainer createBlockState()
|
protected BlockStateContainer createBlockState()
|
||||||
{ return new BlockStateContainer(this, new IProperty[] {UP, NORTH, EAST, WEST, SOUTH}); }
|
{ return new BlockStateContainer(this, new IProperty[] {UP, NORTH, EAST, WEST, SOUTH, TEXTURE_VARIANT}); }
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@SuppressWarnings("deprecation")
|
@SuppressWarnings("deprecation")
|
||||||
|
|
|
@ -14,11 +14,11 @@ import wile.engineersdecor.blocks.*;
|
||||||
import net.minecraftforge.common.config.Config;
|
import net.minecraftforge.common.config.Config;
|
||||||
import net.minecraftforge.common.config.ConfigManager;
|
import net.minecraftforge.common.config.ConfigManager;
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
|
import net.minecraft.item.Item;
|
||||||
import net.minecraftforge.fml.common.Mod;
|
import net.minecraftforge.fml.common.Mod;
|
||||||
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
|
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
|
||||||
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
|
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
|
||||||
import net.minecraftforge.fml.client.event.ConfigChangedEvent;
|
import net.minecraftforge.fml.client.event.ConfigChangedEvent;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
@Config(modid = ModEngineersDecor.MODID)
|
@Config(modid = ModEngineersDecor.MODID)
|
||||||
|
@ -253,6 +253,12 @@ public class ModConfig
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static final boolean isOptedOut(final @Nullable Item item)
|
||||||
|
{
|
||||||
|
if((item == null) || (optout == null)) return true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
public static final void apply()
|
public static final void apply()
|
||||||
{
|
{
|
||||||
BlockDecorFurnace.BTileEntity.on_config(tweaks.furnace_smelting_speed_percent, tweaks.furnace_fuel_efficiency_percent, tweaks.furnace_boost_energy_consumption);
|
BlockDecorFurnace.BTileEntity.on_config(tweaks.furnace_smelting_speed_percent, tweaks.furnace_fuel_efficiency_percent, tweaks.furnace_boost_energy_consumption);
|
||||||
|
|
|
@ -5,23 +5,43 @@
|
||||||
* @license MIT (see https://opensource.org/licenses/MIT)
|
* @license MIT (see https://opensource.org/licenses/MIT)
|
||||||
*
|
*
|
||||||
* General handling auxiliaries for mod recipes.
|
* General handling auxiliaries for mod recipes.
|
||||||
|
*
|
||||||
|
* Credits/references:
|
||||||
|
*
|
||||||
|
* - Looked up how blusunrise did the ore-to-grit recipes in `blusunrize.immersiveengineering.common.IERecipes`.
|
||||||
*/
|
*/
|
||||||
package wile.engineersdecor.detail;
|
package wile.engineersdecor.detail;
|
||||||
|
|
||||||
import wile.engineersdecor.ModEngineersDecor;
|
import wile.engineersdecor.ModEngineersDecor;
|
||||||
import wile.engineersdecor.blocks.BlockDecorFurnace;
|
import wile.engineersdecor.blocks.BlockDecorFurnace;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.item.crafting.IRecipe;
|
||||||
import net.minecraft.item.crafting.FurnaceRecipes;
|
import net.minecraft.item.crafting.FurnaceRecipes;
|
||||||
import net.minecraft.util.NonNullList;
|
import net.minecraft.util.NonNullList;
|
||||||
|
import net.minecraftforge.event.RegistryEvent;
|
||||||
import net.minecraftforge.oredict.OreDictionary;
|
import net.minecraftforge.oredict.OreDictionary;
|
||||||
import net.minecraft.item.ItemStack;
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
|
|
||||||
public class ModRecipes
|
public class ModRecipes
|
||||||
{
|
{
|
||||||
|
public static final void registerRecipes(RegistryEvent.Register<IRecipe> event)
|
||||||
|
{}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------------------------
|
||||||
|
// Furnace
|
||||||
|
//--------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Not a standard recipe, on-the-fly changable behaviour of the furnace.
|
||||||
|
*/
|
||||||
public static final void furnaceRecipeOverrideReset()
|
public static final void furnaceRecipeOverrideReset()
|
||||||
{ BlockDecorFurnace.BRecipes.instance().reset(); }
|
{ BlockDecorFurnace.BRecipes.instance().reset(); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Not a standard recipe, on-the-fly changable behaviour of the furnace.
|
||||||
|
*/
|
||||||
public static final void furnaceRecipeOverrideSmeltsOresToNuggets()
|
public static final void furnaceRecipeOverrideSmeltsOresToNuggets()
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
|
|
51
1.12/src/main/java/wile/engineersdecor/items/ItemDecor.java
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
/*
|
||||||
|
* @file ItemDecor.java
|
||||||
|
* @author Stefan Wilhelm (wile)
|
||||||
|
* @copyright (C) 2018 Stefan Wilhelm
|
||||||
|
* @license MIT (see https://opensource.org/licenses/MIT)
|
||||||
|
*
|
||||||
|
* Basic item functionality for mod items.
|
||||||
|
*/
|
||||||
|
package wile.engineersdecor.items;
|
||||||
|
|
||||||
|
import net.minecraft.client.renderer.block.model.ModelBakery;
|
||||||
|
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
|
||||||
|
import net.minecraft.client.util.ITooltipFlag;
|
||||||
|
import net.minecraft.item.Item;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
import net.minecraftforge.client.model.ModelLoader;
|
||||||
|
import net.minecraftforge.fml.relauncher.Side;
|
||||||
|
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||||
|
import wile.engineersdecor.ModEngineersDecor;
|
||||||
|
import wile.engineersdecor.detail.ModAuxiliaries;
|
||||||
|
|
||||||
|
import javax.annotation.Nullable;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class ItemDecor extends Item
|
||||||
|
{
|
||||||
|
ItemDecor(String registryName)
|
||||||
|
{
|
||||||
|
super();
|
||||||
|
setRegistryName(ModEngineersDecor.MODID, registryName);
|
||||||
|
setTranslationKey(ModEngineersDecor.MODID + "." + registryName);
|
||||||
|
setMaxStackSize(64);
|
||||||
|
setCreativeTab(ModEngineersDecor.CREATIVE_TAB_ENGINEERSDECOR);
|
||||||
|
setHasSubtypes(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
|
public void initModel()
|
||||||
|
{
|
||||||
|
ModelResourceLocation rc = new ModelResourceLocation(getRegistryName(),"inventory");
|
||||||
|
ModelBakery.registerItemVariants(this, rc);
|
||||||
|
ModelLoader.setCustomMeshDefinition(this, stack->rc);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
|
public void addInformation(ItemStack stack, @Nullable World world, List<String> tooltip, ITooltipFlag flag)
|
||||||
|
{ ModAuxiliaries.Tooltip.addInformation(stack, world, tooltip, flag, true); }
|
||||||
|
|
||||||
|
}
|
63
1.12/src/main/java/wile/engineersdecor/items/ModItems.java
Normal file
|
@ -0,0 +1,63 @@
|
||||||
|
/*
|
||||||
|
* @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();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -3,7 +3,7 @@
|
||||||
"defaults": {
|
"defaults": {
|
||||||
"model": "engineersdecor:wall/clinker_brick_wall_default",
|
"model": "engineersdecor:wall/clinker_brick_wall_default",
|
||||||
"textures": {
|
"textures": {
|
||||||
"wall": "engineersdecor:blocks/clinker_brick/clinker_brick_wall",
|
"wall": "engineersdecor:blocks/clinker_brick/clinker_brick_wall0",
|
||||||
"postside": "engineersdecor:blocks/clinker_brick/clinker_brick_pole_side",
|
"postside": "engineersdecor:blocks/clinker_brick/clinker_brick_pole_side",
|
||||||
"top": "engineersdecor:blocks/clinker_brick/clinker_brick_top",
|
"top": "engineersdecor:blocks/clinker_brick/clinker_brick_top",
|
||||||
"particle": "engineersdecor:blocks/clinker_brick/clinker_brick_top"
|
"particle": "engineersdecor:blocks/clinker_brick/clinker_brick_top"
|
||||||
|
@ -15,6 +15,16 @@
|
||||||
"north": { "false":{}, "true": {"submodel": {"clinker_wall_north" : {"model": "engineersdecor:wall/clinker_brick_wall_side", "uvlock": true, "y": 0 }}} },
|
"north": { "false":{}, "true": {"submodel": {"clinker_wall_north" : {"model": "engineersdecor:wall/clinker_brick_wall_side", "uvlock": true, "y": 0 }}} },
|
||||||
"east" : { "false":{}, "true": {"submodel": {"clinker_wall_east" : {"model": "engineersdecor:wall/clinker_brick_wall_side", "uvlock": true, "y": 90 }}} },
|
"east" : { "false":{}, "true": {"submodel": {"clinker_wall_east" : {"model": "engineersdecor:wall/clinker_brick_wall_side", "uvlock": true, "y": 90 }}} },
|
||||||
"south": { "false":{}, "true": {"submodel": {"clinker_wall_south" : {"model": "engineersdecor:wall/clinker_brick_wall_side", "uvlock": true, "y": 180 }}} },
|
"south": { "false":{}, "true": {"submodel": {"clinker_wall_south" : {"model": "engineersdecor:wall/clinker_brick_wall_side", "uvlock": true, "y": 180 }}} },
|
||||||
"west" : { "false":{}, "true": {"submodel": {"clinker_wall_west" : {"model": "engineersdecor:wall/clinker_brick_wall_side", "uvlock": true, "y": 270 }}} }
|
"west" : { "false":{}, "true": {"submodel": {"clinker_wall_west" : {"model": "engineersdecor:wall/clinker_brick_wall_side", "uvlock": true, "y": 270 }}} },
|
||||||
|
"tvariant": {
|
||||||
|
"0":{"textures":{"wall": "engineersdecor:blocks/clinker_brick/clinker_brick_wall0"}},
|
||||||
|
"1":{"textures":{"wall": "engineersdecor:blocks/clinker_brick/clinker_brick_wall1"}},
|
||||||
|
"2":{"textures":{"wall": "engineersdecor:blocks/clinker_brick/clinker_brick_wall2"}},
|
||||||
|
"3":{"textures":{"wall": "engineersdecor:blocks/clinker_brick/clinker_brick_wall3"}},
|
||||||
|
"4":{"textures":{"wall": "engineersdecor:blocks/clinker_brick/clinker_brick_wall4"}},
|
||||||
|
"5":{"textures":{"wall": "engineersdecor:blocks/clinker_brick/clinker_brick_wall5"}},
|
||||||
|
"6":{"textures":{"wall": "engineersdecor:blocks/clinker_brick/clinker_brick_wall6"}},
|
||||||
|
"7":{"textures":{"wall": "engineersdecor:blocks/clinker_brick/clinker_brick_wall7"}}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
"north": { "false":{}, "true": {"submodel": {"concrete_wall_north" : {"model": "engineersdecor:wall/concrete_wall_side", "uvlock": true, "y": 0 }}} },
|
"north": { "false":{}, "true": {"submodel": {"concrete_wall_north" : {"model": "engineersdecor:wall/concrete_wall_side", "uvlock": true, "y": 0 }}} },
|
||||||
"east" : { "false":{}, "true": {"submodel": {"concrete_wall_east" : {"model": "engineersdecor:wall/concrete_wall_side", "uvlock": true, "y": 90 }}} },
|
"east" : { "false":{}, "true": {"submodel": {"concrete_wall_east" : {"model": "engineersdecor:wall/concrete_wall_side", "uvlock": true, "y": 90 }}} },
|
||||||
"south": { "false":{}, "true": {"submodel": {"concrete_wall_south" : {"model": "engineersdecor:wall/concrete_wall_side", "uvlock": true, "y": 180 }}} },
|
"south": { "false":{}, "true": {"submodel": {"concrete_wall_south" : {"model": "engineersdecor:wall/concrete_wall_side", "uvlock": true, "y": 180 }}} },
|
||||||
"west" : { "false":{}, "true": {"submodel": {"concrete_wall_west" : {"model": "engineersdecor:wall/concrete_wall_side", "uvlock": true, "y": 270 }}} }
|
"west" : { "false":{}, "true": {"submodel": {"concrete_wall_west" : {"model": "engineersdecor:wall/concrete_wall_side", "uvlock": true, "y": 270 }}} },
|
||||||
|
"tvariant": { "0":{},"1":{},"2":{},"3":{},"4":{},"5":{},"6":{},"7":{} }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,6 +13,16 @@
|
||||||
"north": { "false":{}, "true": {"submodel": {"concrete_wall_north" : {"model": "engineersdecor:wall/concrete_wall_side", "uvlock": true, "y": 0 }}} },
|
"north": { "false":{}, "true": {"submodel": {"concrete_wall_north" : {"model": "engineersdecor:wall/concrete_wall_side", "uvlock": true, "y": 0 }}} },
|
||||||
"east" : { "false":{}, "true": {"submodel": {"concrete_wall_east" : {"model": "engineersdecor:wall/concrete_wall_side", "uvlock": true, "y": 90 }}} },
|
"east" : { "false":{}, "true": {"submodel": {"concrete_wall_east" : {"model": "engineersdecor:wall/concrete_wall_side", "uvlock": true, "y": 90 }}} },
|
||||||
"south": { "false":{}, "true": {"submodel": {"concrete_wall_south" : {"model": "engineersdecor:wall/concrete_wall_side", "uvlock": true, "y": 180 }}} },
|
"south": { "false":{}, "true": {"submodel": {"concrete_wall_south" : {"model": "engineersdecor:wall/concrete_wall_side", "uvlock": true, "y": 180 }}} },
|
||||||
"west" : { "false":{}, "true": {"submodel": {"concrete_wall_west" : {"model": "engineersdecor:wall/concrete_wall_side", "uvlock": true, "y": 270 }}} }
|
"west" : { "false":{}, "true": {"submodel": {"concrete_wall_west" : {"model": "engineersdecor:wall/concrete_wall_side", "uvlock": true, "y": 270 }}} },
|
||||||
|
"tvariant": {
|
||||||
|
"0":{"textures":{ "wall": "engineersdecor:blocks/concrete/rebar_concrete_texture0" }},
|
||||||
|
"1":{"textures":{ "wall": "engineersdecor:blocks/concrete/rebar_concrete_texture1" }},
|
||||||
|
"2":{"textures":{ "wall": "engineersdecor:blocks/concrete/rebar_concrete_texture2" }},
|
||||||
|
"3":{"textures":{ "wall": "engineersdecor:blocks/concrete/rebar_concrete_texture3" }},
|
||||||
|
"4":{"textures":{ "wall": "engineersdecor:blocks/concrete/rebar_concrete_texture4" }},
|
||||||
|
"5":{"textures":{ "wall": "engineersdecor:blocks/concrete/rebar_concrete_texture5" }},
|
||||||
|
"6":{"textures":{ "wall": "engineersdecor:blocks/concrete/rebar_concrete_texture6" }},
|
||||||
|
"7":{"textures":{ "wall": "engineersdecor:blocks/concrete/rebar_concrete_texture7" }}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
"defaults": {
|
"defaults": {
|
||||||
"model": "engineersdecor:wall/slag_brick_wall_default",
|
"model": "engineersdecor:wall/slag_brick_wall_default",
|
||||||
"textures": {
|
"textures": {
|
||||||
"wall": "engineersdecor:blocks/slag_brick/slag_brick_wall",
|
"wall": "engineersdecor:blocks/slag_brick/slag_brick_wall0",
|
||||||
"postside": "engineersdecor:blocks/slag_brick/slag_brick_pole_side",
|
"postside": "engineersdecor:blocks/slag_brick/slag_brick_pole_side",
|
||||||
"top": "engineersdecor:blocks/slag_brick/slag_brick_top",
|
"top": "engineersdecor:blocks/slag_brick/slag_brick_top",
|
||||||
"particle": "engineersdecor:blocks/slag_brick/slag_brick_top"
|
"particle": "engineersdecor:blocks/slag_brick/slag_brick_top"
|
||||||
|
@ -15,6 +15,16 @@
|
||||||
"north": { "false":{}, "true": {"submodel": {"clinker_wall_north" : {"model": "engineersdecor:wall/slag_brick_wall_side", "uvlock": true, "y": 0 }}} },
|
"north": { "false":{}, "true": {"submodel": {"clinker_wall_north" : {"model": "engineersdecor:wall/slag_brick_wall_side", "uvlock": true, "y": 0 }}} },
|
||||||
"east" : { "false":{}, "true": {"submodel": {"clinker_wall_east" : {"model": "engineersdecor:wall/slag_brick_wall_side", "uvlock": true, "y": 90 }}} },
|
"east" : { "false":{}, "true": {"submodel": {"clinker_wall_east" : {"model": "engineersdecor:wall/slag_brick_wall_side", "uvlock": true, "y": 90 }}} },
|
||||||
"south": { "false":{}, "true": {"submodel": {"clinker_wall_south" : {"model": "engineersdecor:wall/slag_brick_wall_side", "uvlock": true, "y": 180 }}} },
|
"south": { "false":{}, "true": {"submodel": {"clinker_wall_south" : {"model": "engineersdecor:wall/slag_brick_wall_side", "uvlock": true, "y": 180 }}} },
|
||||||
"west" : { "false":{}, "true": {"submodel": {"clinker_wall_west" : {"model": "engineersdecor:wall/slag_brick_wall_side", "uvlock": true, "y": 270 }}} }
|
"west" : { "false":{}, "true": {"submodel": {"clinker_wall_west" : {"model": "engineersdecor:wall/slag_brick_wall_side", "uvlock": true, "y": 270 }}} },
|
||||||
|
"tvariant": {
|
||||||
|
"0":{"textures":{ "wall": "engineersdecor:blocks/slag_brick/slag_brick_wall0" }},
|
||||||
|
"1":{"textures":{ "wall": "engineersdecor:blocks/slag_brick/slag_brick_wall1" }},
|
||||||
|
"2":{"textures":{ "wall": "engineersdecor:blocks/slag_brick/slag_brick_wall2" }},
|
||||||
|
"3":{"textures":{ "wall": "engineersdecor:blocks/slag_brick/slag_brick_wall3" }},
|
||||||
|
"4":{"textures":{ "wall": "engineersdecor:blocks/slag_brick/slag_brick_wall4" }},
|
||||||
|
"5":{"textures":{ "wall": "engineersdecor:blocks/slag_brick/slag_brick_wall5" }},
|
||||||
|
"6":{"textures":{ "wall": "engineersdecor:blocks/slag_brick/slag_brick_wall6" }},
|
||||||
|
"7":{"textures":{ "wall": "engineersdecor:blocks/slag_brick/slag_brick_wall7" }}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -83,6 +83,7 @@ tile.engineersdecor.small_lab_furnace.help=§6Small metal cased lab kiln.§r Sol
|
||||||
#-----------------------------------------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------------------------------------
|
||||||
tile.engineersdecor.sign_decor.name=Sign plate (Engineer's decor logo)
|
tile.engineersdecor.sign_decor.name=Sign plate (Engineer's decor logo)
|
||||||
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.
|
||||||
|
|
||||||
#-----------------------------------------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------------------------------------
|
||||||
# EOF
|
# EOF
|
||||||
#-----------------------------------------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------------------------------------
|
||||||
|
|
|
@ -79,6 +79,7 @@ tile.engineersdecor.small_lab_furnace.help=§6Лабораторная печь
|
||||||
#-----------------------------------------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------------------------------------
|
||||||
tile.engineersdecor.sign_decor.name=Sign plate (Engineer's decor logo)
|
tile.engineersdecor.sign_decor.name=Sign plate (Engineer's decor logo)
|
||||||
#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.
|
||||||
|
|
||||||
#-----------------------------------------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------------------------------------
|
||||||
# EOF
|
# EOF
|
||||||
#-----------------------------------------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------------------------------------
|
||||||
|
|
|
@ -2,8 +2,8 @@
|
||||||
"parent": "block/block",
|
"parent": "block/block",
|
||||||
"ambientocclusion": false,
|
"ambientocclusion": false,
|
||||||
"textures": {
|
"textures": {
|
||||||
"wall": "engineersdecor:blocks/clinker_brick/clinker_brick_wall",
|
"wall": "engineersdecor:blocks/clinker_brick/clinker_brick_wall0",
|
||||||
"particle": "engineersdecor:blocks/clinker_brick/clinker_brick_wall",
|
"particle": "engineersdecor:blocks/clinker_brick/clinker_brick_wall0",
|
||||||
"top": "engineersdecor:blocks/clinker_brick/clinker_brick_top"
|
"top": "engineersdecor:blocks/clinker_brick/clinker_brick_top"
|
||||||
},
|
},
|
||||||
"elements": [
|
"elements": [
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"credit": "I made this with the Blockbench",
|
"credit": "I made this with the Blockbench",
|
||||||
"textures": {
|
"textures": {
|
||||||
"wall": "engineersdecor:blocks/clinker_brick/clinker_brick_wall",
|
"wall": "engineersdecor:blocks/clinker_brick/clinker_brick_wall0",
|
||||||
"top": "engineersdecor:blocks/clinker_brick/clinker_brick_top",
|
"top": "engineersdecor:blocks/clinker_brick/clinker_brick_top",
|
||||||
"particle": "engineersdecor:blocks/clinker_brick/clinker_brick_top"
|
"particle": "engineersdecor:blocks/clinker_brick/clinker_brick_top"
|
||||||
},
|
},
|
||||||
|
|
|
@ -2,8 +2,8 @@
|
||||||
"parent": "block/block",
|
"parent": "block/block",
|
||||||
"ambientocclusion": false,
|
"ambientocclusion": false,
|
||||||
"textures": {
|
"textures": {
|
||||||
"wall": "engineersdecor:blocks/slag_brick/slag_brick_wall",
|
"wall": "engineersdecor:blocks/slag_brick/slag_brick_wall0",
|
||||||
"particle": "engineersdecor:blocks/slag_brick/slag_brick_wall",
|
"particle": "engineersdecor:blocks/slag_brick/slag_brick_wall0",
|
||||||
"top": "engineersdecor:blocks/slag_brick/slag_brick_top"
|
"top": "engineersdecor:blocks/slag_brick/slag_brick_top"
|
||||||
},
|
},
|
||||||
"elements": [
|
"elements": [
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"credit": "I made this with the Blockbench",
|
"credit": "I made this with the Blockbench",
|
||||||
"textures": {
|
"textures": {
|
||||||
"wall": "engineersdecor:blocks/slag_brick/slag_brick_wall",
|
"wall": "engineersdecor:blocks/slag_brick/slag_brick_wall0",
|
||||||
"top": "engineersdecor:blocks/slag_brick/slag_brick_top",
|
"top": "engineersdecor:blocks/slag_brick/slag_brick_top",
|
||||||
"particle": "engineersdecor:blocks/slag_brick/slag_brick_top"
|
"particle": "engineersdecor:blocks/slag_brick/slag_brick_top"
|
||||||
},
|
},
|
||||||
|
|
|
@ -19,6 +19,10 @@
|
||||||
"ingredient": { "type": "forge:ore_dict", "ore": "ingotIron" },
|
"ingredient": { "type": "forge:ore_dict", "ore": "ingotIron" },
|
||||||
"name": "ingotIron"
|
"name": "ingotIron"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"ingredient": { "type": "forge:ore_dict", "ore": "blockIron" },
|
||||||
|
"name": "blockIron"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"ingredient": { "type": "forge:ore_dict", "ore": "plateIron" },
|
"ingredient": { "type": "forge:ore_dict", "ore": "plateIron" },
|
||||||
"name": "plateIron"
|
"name": "plateIron"
|
||||||
|
|
Before Width: | Height: | Size: 549 B After Width: | Height: | Size: 530 B |
After Width: | Height: | Size: 660 B |
After Width: | Height: | Size: 672 B |
After Width: | Height: | Size: 609 B |
After Width: | Height: | Size: 636 B |
After Width: | Height: | Size: 603 B |
After Width: | Height: | Size: 648 B |
After Width: | Height: | Size: 630 B |
Before Width: | Height: | Size: 692 B After Width: | Height: | Size: 692 B |
After Width: | Height: | Size: 682 B |
After Width: | Height: | Size: 684 B |
After Width: | Height: | Size: 706 B |
After Width: | Height: | Size: 687 B |
After Width: | Height: | Size: 693 B |
After Width: | Height: | Size: 697 B |
After Width: | Height: | Size: 711 B |
|
@ -22,3 +22,7 @@ IE components used in this mod:
|
||||||
reported bailouts if IE is not installed, local path in the mod is
|
reported bailouts if IE is not installed, local path in the mod is
|
||||||
"engineersdecor:blocks/iestyle/stone_decoration_concrete_by_blusunrize",
|
"engineersdecor:blocks/iestyle/stone_decoration_concrete_by_blusunrize",
|
||||||
used in block "engineersdecor:concrete_wall".
|
used in block "engineersdecor:concrete_wall".
|
||||||
|
|
||||||
|
Source codes derived (inspected e.g. for trouble shooting and learning how things work):
|
||||||
|
|
||||||
|
- Ore dict based recipe registration from blusunrize.immersiveengineering.common.IERecipes.
|
||||||
|
|
Before Width: | Height: | Size: 284 KiB |
BIN
documentation/engineers-decor-v104a-craftinggui.png
Normal file
After Width: | Height: | Size: 219 KiB |
|
@ -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.12.2": {
|
"1.12.2": {
|
||||||
|
"1.0.4-b2": "[A] Added position dependent texture variation to clinker wall, slag brick wall and rebar concrete wall.",
|
||||||
"1.0.4-b1": "[A] Crafting table: JEI integration for recipe placement added.\n[A] Crafting table: History re-fab added, allowing to quickly select and re-craft recent recipes. Selection with arrow buttons, ingredient placement by clicking the result slot. Automatic item distribution on shift-click. Quick-move buttons.\n[F] Crafting table textures modified to prevent optifine glitches on the edges of the legs.",
|
"1.0.4-b1": "[A] Crafting table: JEI integration for recipe placement added.\n[A] Crafting table: History re-fab added, allowing to quickly select and re-craft recent recipes. Selection with arrow buttons, ingredient placement by clicking the result slot. Automatic item distribution on shift-click. Quick-move buttons.\n[F] Crafting table textures modified to prevent optifine glitches on the edges of the legs.",
|
||||||
"1.0.3": "[R] Release based on v1.0.3-b5. Release-to-release changes: * Small laboratory furnace added. * Extensive config options for mod packing and tuning added. * Rendering issues fixes (window bleeding, optifine). * Steel framed window added. * Treated wood pole \"end pieces\" added (two support variants). * Sitting on treated wood stool added including mobs (but not villagers, as these are obviously very upright people). * Lang ru_ru added (github contribution from Yaroslavik). * Creative tab logo changed to mod logo. * Table/crafting table bounding boxes refined. * Standalone \"escape\" recipes added if IE is not installed.",
|
"1.0.3": "[R] Release based on v1.0.3-b5. Release-to-release changes: * Small laboratory furnace added. * Extensive config options for mod packing and tuning added. * Rendering issues fixes (window bleeding, optifine). * Steel framed window added. * Treated wood pole \"end pieces\" added (two support variants). * Sitting on treated wood stool added including mobs (but not villagers, as these are obviously very upright people). * Lang ru_ru added (github contribution from Yaroslavik). * Creative tab logo changed to mod logo. * Table/crafting table bounding boxes refined. * Standalone \"escape\" recipes added if IE is not installed.",
|
||||||
"1.0.3-b5": "[F] Fixed typo in en-en lang file.\n[F] Fixed IE concrete texture missing bailout in log if IE is not installed.\n[F] Using forge multi-layer models for windows to circumvent glitches.\n[M] Changed creative tab logo to the mod logo.\n[A] Added alternative recipes for crafting table and furnace if main IE ingredients are missing (for \"stand-alone\" mod usage).",
|
"1.0.3-b5": "[F] Fixed typo in en-en lang file.\n[F] Fixed IE concrete texture missing bailout in log if IE is not installed.\n[F] Using forge multi-layer models for windows to circumvent glitches.\n[M] Changed creative tab logo to the mod logo.\n[A] Added alternative recipes for crafting table and furnace if main IE ingredients are missing (for \"stand-alone\" mod usage).",
|
||||||
|
@ -33,7 +34,7 @@
|
||||||
},
|
},
|
||||||
"promos": {
|
"promos": {
|
||||||
"1.12.2-recommended": "1.0.3",
|
"1.12.2-recommended": "1.0.3",
|
||||||
"1.12.2-latest": "1.0.4-b1",
|
"1.12.2-latest": "1.0.4-b2",
|
||||||
"1.13.2-recommended": "",
|
"1.13.2-recommended": "",
|
||||||
"1.13.2-latest": "1.0.2-b3"
|
"1.13.2-latest": "1.0.2-b3"
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,8 +17,7 @@ Main distribution channel for this mod is CurseForge:
|
||||||
----
|
----
|
||||||
### Details
|
### Details
|
||||||
|
|
||||||
The mod has its focus on non-functional, decorative blocks. If anyhow possible,
|
The mod has its focus decorative blocks. Current feature set:
|
||||||
no tile entities or user interactions are used. Current feature set:
|
|
||||||
|
|
||||||
- *Treated wood crafting table*: 3x3 crafting table with IE style GUI and a model
|
- *Treated wood crafting table*: 3x3 crafting table with IE style GUI and a model
|
||||||
fitting better in the engineer's workshop. Keeps its inventory, has eight additional
|
fitting better in the engineer's workshop. Keeps its inventory, has eight additional
|
||||||
|
@ -138,6 +137,8 @@ Mods covering similar features, or may fit well together with IE and the decorat
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||

|

|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|

|
||||||
|
|