Texture variations for walls.

This commit is contained in:
stfwi 2019-04-19 21:08:46 +02:00
parent a847e1827a
commit 816e13b8aa
41 changed files with 223 additions and 29 deletions

View file

@ -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

View file

@ -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"
} }
} }

View file

@ -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,

View file

@ -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") {

View file

@ -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")

View file

@ -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);

View file

@ -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 {

View 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); }
}

View 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();
}
}
}

View file

@ -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"}}
}
} }
} }

View file

@ -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":{} }
} }
} }

View file

@ -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" }}
}
} }
} }

View file

@ -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" }}
}
} }
} }

View file

@ -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
#----------------------------------------------------------------------------------------------------------- #-----------------------------------------------------------------------------------------------------------

View file

@ -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
#----------------------------------------------------------------------------------------------------------- #-----------------------------------------------------------------------------------------------------------

View file

@ -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": [

View file

@ -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"
}, },

View file

@ -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": [

View file

@ -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"
}, },

View file

@ -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"

Binary file not shown.

After

Width:  |  Height:  |  Size: 660 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 672 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 609 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 636 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 603 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 648 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 630 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 682 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 684 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 706 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 687 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 693 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 697 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 711 B

View file

@ -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.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 284 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 219 KiB

View file

@ -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"
} }

View file

@ -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
![Concrete](documentation/engineers-decor-v100a-concrete-stuff.png) ![Concrete](documentation/engineers-decor-v100a-concrete-stuff.png)
![Concrete](documentation/engineers-decor-v101a-summary.png) ![v1.0.1 summary](documentation/engineers-decor-v101a-summary.png)
![Concrete](documentation/engineers-decor-v101a-craftinggui.png) ![Crafting table GUI](documentation/engineers-decor-v104a-craftinggui.png)
![Lab furnace GUI](documentation/engineers-decor-v103-labfurnacegui.png)