Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: Chisel-Team/Chisel
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: b15923b11e48
Choose a base ref
...
head repository: Chisel-Team/Chisel
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 48aba9c14e62
Choose a head ref
  • 1 commit
  • 24 files changed
  • 1 contributor

Commits on Dec 22, 2015

  1. Copy the full SHA
    48aba9c View commit details
Showing with 93 additions and 98 deletions.
  1. +20 −11 src/main/java/team/chisel/api/render/IBlockRenderType.java
  2. +4 −4 src/main/java/team/chisel/api/render/IChiselFace.java
  3. +4 −4 src/main/java/team/chisel/api/render/IChiselTexture.java
  4. +7 −11 src/main/java/team/chisel/client/BlockFaceData.java
  5. +7 −9 src/main/java/team/chisel/client/ChiselFace.java
  6. +5 −4 src/main/java/team/chisel/client/command/CommandTest.java
  7. +2 −2 src/main/java/team/chisel/client/render/ModelChiselBlock.java
  8. +4 −4 src/main/java/team/chisel/client/render/texture/AbstractChiselTexture.java
  9. +3 −3 src/main/java/team/chisel/client/render/texture/ChiselTextureCTM.java
  10. +4 −7 src/main/java/team/chisel/client/render/texture/ChiselTextureCTMH.java
  11. +1 −1 src/main/java/team/chisel/client/render/texture/ChiselTextureNormal.java
  12. +6 −8 src/main/java/team/chisel/client/render/texture/ChiselTextureR.java
  13. +5 −11 src/main/java/team/chisel/client/render/texture/ChiselTextureV.java
  14. +2 −2 src/main/java/team/chisel/client/render/type/BlockRenderTypeCTM.java
  15. +1 −1 src/main/java/team/chisel/client/render/type/BlockRenderTypeCTMH.java
  16. +1 −1 src/main/java/team/chisel/client/render/type/BlockRenderTypeNormal.java
  17. +1 −1 src/main/java/team/chisel/client/render/type/BlockRenderTypeR.java
  18. +4 −2 src/main/java/team/chisel/client/render/type/BlockRenderTypeSheet.java
  19. +1 −1 src/main/java/team/chisel/client/render/type/BlockRenderTypeV.java
  20. +1 −1 src/main/java/team/chisel/common/PropertyBlockPos.java
  21. +3 −3 src/main/java/team/chisel/common/util/json/JsonFace.java
  22. +4 −4 src/main/java/team/chisel/common/util/json/JsonHelper.java
  23. +2 −2 src/main/java/team/chisel/common/util/json/JsonTexture.java
  24. +1 −1 src/main/resources/assets/chisel/textures/blocks/brick/aged.json
31 changes: 20 additions & 11 deletions src/main/java/team/chisel/api/render/IBlockRenderType.java
Original file line number Diff line number Diff line change
@@ -5,38 +5,47 @@
import net.minecraft.world.IBlockAccess;

/**
* Interface for chisel block render types
* MUST HAVE A NO ARGS CONSTRUCTOR
* Interface for chisel block render types MUST HAVE A NO ARGS CONSTRUCTOR
*/
public interface IBlockRenderType {

/**
* Make a Chisel Texture from a list of sprites
* @param layer The texture layer
* @param sprites The Sprites
* @return A Chisel Texture
* TODO This should probably take a bean, so that adding extra stuff later doesn't break API
* Make a Chisel Texture from a list of sprites.
* <p>
* Tip: You can explicitly type the return of this method without any warnings or errors. For instance <blockquote>
* <code>public IChiselTexture{@literal <}MyRenderType{@literal >} makeTexture(...) {...}</code> </blockquote> Is a valid override of this method.
*
* @param layer
* The texture layer
* @param sprites
* The Sprites
* @return A Chisel Texture TODO This should probably take a bean, so that adding extra stuff later doesn't break API
*/
IChiselTexture makeTexture(EnumWorldBlockLayer layer, TextureSpriteCallback... sprites);
<T extends IBlockRenderType> IChiselTexture<? extends T> makeTexture(EnumWorldBlockLayer layer, TextureSpriteCallback... sprites);

/**
* Gets the block render context for this block
* @param world The world block access
* @param pos The block position
*
* @param world
* The world block access
* @param pos
* The block position
* @return The block render context
*/
IBlockRenderContext getBlockRenderContext(IBlockAccess world, BlockPos pos);

/**
* Gets the amount of quads per side
*
* @return The Amount of quads per side
*/
default int getQuadsPerSide() {
return 1;
}

/**
* The amount of textures required for this render type. For instance CTM requires two.
*
* @return The amount of textures required.
*/
default int requiredTextures() {
8 changes: 4 additions & 4 deletions src/main/java/team/chisel/api/render/IChiselFace.java
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
package team.chisel.api.render;

import java.util.List;

import net.minecraft.client.renderer.texture.TextureAtlasSprite;
import net.minecraft.util.EnumWorldBlockLayer;

import java.util.List;

public interface IChiselFace {

List<IChiselTexture> getTextureList();
List<IChiselTexture<?>> getTextureList();

void addTexture(IChiselTexture texture);
void addTexture(IChiselTexture<?> texture);

void addChildFace(IChiselFace face);

8 changes: 4 additions & 4 deletions src/main/java/team/chisel/api/render/IChiselTexture.java
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
package team.chisel.api.render;

import java.util.List;

import net.minecraft.client.renderer.block.model.BakedQuad;
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.EnumWorldBlockLayer;

import java.util.List;

/**
* Represents a Chisel Texture/resource
*/
public interface IChiselTexture {
public interface IChiselTexture<T extends IBlockRenderType> {

/**
* Gets a list of quads for the side for this texture
@@ -30,7 +30,7 @@ public interface IChiselTexture {
*
* @return The Rendertype of this texture
*/
IBlockRenderType getBlockRenderType();
T getBlockRenderType();

/**
* Gets the texture for a particle
18 changes: 7 additions & 11 deletions src/main/java/team/chisel/client/BlockFaceData.java
Original file line number Diff line number Diff line change
@@ -1,25 +1,21 @@
package team.chisel.client;

import net.minecraft.item.ItemStack;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import net.minecraft.util.EnumFacing;
import net.minecraft.util.EnumWorldBlockLayer;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import team.chisel.Chisel;
import team.chisel.api.block.ChiselRecipe;
import team.chisel.api.block.ClientVariationData;
import team.chisel.api.block.VariationData;
import team.chisel.api.render.IBlockRenderType;
import team.chisel.api.render.IChiselFace;
import team.chisel.api.render.IChiselTexture;
import team.chisel.common.util.json.JsonHelper;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
* Block Face data for a block
*/
@@ -99,13 +95,13 @@ public VariationFaceData(IChiselFace defaultFace, Map<EnumFacing, IChiselFace> s
this.sideOverrides = sideOverrides;
this.typesUsed = new ArrayList<IBlockRenderType>();
for (IChiselFace face : sideOverrides.values()){
for (IChiselTexture texture : face.getTextureList()) {
for (IChiselTexture<?> texture : face.getTextureList()) {
if (!typesUsed.contains(texture.getBlockRenderType())){
typesUsed.add(texture.getBlockRenderType());
}
}
}
for (IChiselTexture texture : defaultFace.getTextureList()) {
for (IChiselTexture<?> texture : defaultFace.getTextureList()) {
if (!typesUsed.contains(texture.getBlockRenderType())) {
typesUsed.add(texture.getBlockRenderType());
}
16 changes: 7 additions & 9 deletions src/main/java/team/chisel/client/ChiselFace.java
Original file line number Diff line number Diff line change
@@ -14,7 +14,7 @@
*/
public final class ChiselFace implements IChiselFace {

private List<IChiselTexture> textureList;
private List<IChiselTexture<?>> textureList;

private List<IChiselFace> childFaces;

@@ -26,37 +26,35 @@ public ChiselFace(ResourceLocation location) {
this(new ArrayList<>(), new ArrayList<>(), location);
}

public ChiselFace(ResourceLocation location, EnumWorldBlockLayer layer){
public ChiselFace(ResourceLocation location, EnumWorldBlockLayer layer) {
this(location);
setLayer(layer);
}

public ChiselFace(List<IChiselTexture> textureList, List<IChiselFace> childFaces,
ResourceLocation location) {
public ChiselFace(List<IChiselTexture<?>> textureList, List<IChiselFace> childFaces, ResourceLocation location) {
this.textureList = textureList;
this.childFaces = childFaces;
this.location = location;
this.layer = layer;
}

public List<IChiselTexture> getTextureList(){
List<IChiselTexture> list = new ArrayList<IChiselTexture>();
public List<IChiselTexture<?>> getTextureList(){
List<IChiselTexture<?>> list = new ArrayList<>();
list.addAll(this.textureList);
for (IChiselFace face : childFaces){
list.addAll(face.getTextureList());
}
return list;
}

public void addTexture(IChiselTexture texture){
public void addTexture(IChiselTexture<?> texture){
this.textureList.add(texture);
}

public void addChildFace(IChiselFace face){
this.childFaces.add(face);
}

public boolean removeTexture(IChiselTexture texture){
public boolean removeTexture(IChiselTexture<?> texture){
return this.textureList.remove(texture);
}

9 changes: 5 additions & 4 deletions src/main/java/team/chisel/client/command/CommandTest.java
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
package team.chisel.client.command;

import com.google.common.collect.Lists;
import java.util.List;

import net.minecraft.command.CommandException;
import net.minecraft.command.ICommand;
import net.minecraft.command.ICommandSender;
import net.minecraft.util.BlockPos;

import java.util.List;
import com.google.common.collect.Lists;

/**
* Command for testing purposes
@@ -26,7 +27,7 @@ public String getCommandUsage(ICommandSender s) {
}

@Override
public List getCommandAliases() {
public List<String> getCommandAliases() {
return Lists.newArrayList();
}

@@ -40,7 +41,7 @@ public boolean canCommandSenderUseCommand(ICommandSender var1) {
}

@Override
public List addTabCompletionOptions(ICommandSender var1, String[] var2, BlockPos var3) {
public List<String> addTabCompletionOptions(ICommandSender var1, String[] var2, BlockPos var3) {
return Lists.newArrayList();
}

4 changes: 2 additions & 2 deletions src/main/java/team/chisel/client/render/ModelChiselBlock.java
Original file line number Diff line number Diff line change
@@ -103,7 +103,7 @@ public IBakedModel handleBlockState(IBlockState stateIn){
continue;
}
int quadGoal = Ordering.natural().max(FluentIterable.from(face.getTextureList()).transform(tex -> tex.getBlockRenderType().getQuadsPerSide()));
for (IChiselTexture tex : face.getTextureList()){
for (IChiselTexture<?> tex : face.getTextureList()){
quads.addAll(tex.getSideQuads(facing, ctxList.getRenderContext(tex.getBlockRenderType()), quadGoal));
}
}
@@ -123,7 +123,7 @@ public IBakedModel handleItemState(ItemStack stack) {
quads = new ArrayList<BakedQuad>();
for (EnumFacing facing : EnumFacing.VALUES){
//quads.add(QuadHelper.makeNormalFaceQuad(facing, varData.getFaceForSide(facing).getParticle()));
for (IChiselTexture tex : variationData.getFaceForSide(facing).getTextureList()){
for (IChiselTexture<?> tex : variationData.getFaceForSide(facing).getTextureList()){
quads.addAll(tex.getSideQuads(facing, null, 1));
}
}
Original file line number Diff line number Diff line change
@@ -10,21 +10,21 @@
/**
* Abstract implementation of IChiselTexture
*/
public abstract class AbstractChiselTexture implements IChiselTexture {
public abstract class AbstractChiselTexture<T extends IBlockRenderType> implements IChiselTexture<T> {

protected IBlockRenderType type;
protected T type;
protected EnumWorldBlockLayer layer;

protected TextureSpriteCallback[] sprites;

public AbstractChiselTexture(IBlockRenderType type, EnumWorldBlockLayer layer, TextureSpriteCallback... sprites) {
public AbstractChiselTexture(T type, EnumWorldBlockLayer layer, TextureSpriteCallback... sprites) {
this.type = type;
this.layer = layer;
this.sprites = sprites;
}

@Override
public IBlockRenderType getBlockRenderType(){
public T getBlockRenderType(){
return this.type;
}

Original file line number Diff line number Diff line change
@@ -7,14 +7,14 @@
import net.minecraft.util.EnumFacing;
import net.minecraft.util.EnumWorldBlockLayer;
import team.chisel.api.render.IBlockRenderContext;
import team.chisel.api.render.IBlockRenderType;
import team.chisel.api.render.TextureSpriteCallback;
import team.chisel.client.render.QuadHelper;
import team.chisel.client.render.ctx.CTMBlockRenderContext;
import team.chisel.client.render.type.BlockRenderTypeCTM;

public class ChiselTextureCTM extends AbstractChiselTexture {
public class ChiselTextureCTM extends AbstractChiselTexture<BlockRenderTypeCTM> {

public ChiselTextureCTM(IBlockRenderType type, EnumWorldBlockLayer layer, TextureSpriteCallback[] sprites) {
public ChiselTextureCTM(BlockRenderTypeCTM type, EnumWorldBlockLayer layer, TextureSpriteCallback[] sprites) {
super(type, layer, sprites);
}

Original file line number Diff line number Diff line change
@@ -10,17 +10,14 @@
import team.chisel.client.render.QuadHelper;
import team.chisel.client.render.ctm.CTM;
import team.chisel.client.render.ctx.CTMBlockRenderContext;
import team.chisel.client.render.type.BlockRenderTypeCTM;
import team.chisel.client.render.type.BlockRenderTypeCTMH;
import team.chisel.common.util.Dir;

import com.google.common.collect.Lists;

/**
* Chisel Texture for CTM
*/
public class ChiselTextureCTMH extends AbstractChiselTexture {
public class ChiselTextureCTMH extends AbstractChiselTexture<BlockRenderTypeCTMH> {

public ChiselTextureCTMH(BlockRenderTypeCTM type, EnumWorldBlockLayer layer, TextureSpriteCallback... sprites){
public ChiselTextureCTMH(BlockRenderTypeCTMH type, EnumWorldBlockLayer layer, TextureSpriteCallback... sprites) {
super(type, layer, sprites);
}

@@ -36,7 +33,7 @@ public List<BakedQuad> getSideQuads(EnumFacing side, IBlockRenderContext context
return Lists.newArrayList(getQuad(side, ctm));
}
}

private BakedQuad getQuad(EnumFacing side, CTM ctm) {
if (ctm.connectedAnd(Dir.LEFT, Dir.RIGHT)) {
return QuadHelper.makeUVFaceQuad(side, sprites[1].getSprite(), new float[] { 8, 0, 16, 8 });
Original file line number Diff line number Diff line change
@@ -14,7 +14,7 @@
/**
* Chisel texture for a normal texture
*/
public class ChiselTextureNormal extends AbstractChiselTexture {
public class ChiselTextureNormal extends AbstractChiselTexture<BlockRenderTypeNormal> {

public ChiselTextureNormal(BlockRenderTypeNormal type, EnumWorldBlockLayer layer, TextureSpriteCallback... sprites){
super(type, layer, sprites);
Original file line number Diff line number Diff line change
@@ -10,33 +10,31 @@
import net.minecraft.util.EnumWorldBlockLayer;
import net.minecraft.util.MathHelper;
import team.chisel.api.render.IBlockRenderContext;
import team.chisel.api.render.IBlockRenderType;
import team.chisel.api.render.TextureSpriteCallback;
import team.chisel.client.render.QuadHelper;
import team.chisel.client.render.ctx.BlockRenderContextSheet;
import team.chisel.client.render.type.BlockRenderTypeR;

/**
* Texture for R texture types
*/
public class ChiselTextureR extends AbstractChiselTexture {
public class ChiselTextureR extends AbstractChiselTexture<BlockRenderTypeR> {

private static final Random rand = new Random();

public ChiselTextureR(IBlockRenderType type, EnumWorldBlockLayer layer, TextureSpriteCallback[] sprites) {
public ChiselTextureR(BlockRenderTypeR type, EnumWorldBlockLayer layer, TextureSpriteCallback[] sprites) {
super(type, layer, sprites);
}

@Override
public List<BakedQuad> getSideQuads(EnumFacing side, IBlockRenderContext context, int quadGoal) {

BlockRenderContextSheet ctx = (BlockRenderContextSheet) context;
BlockPos pos = ctx == null ? new BlockPos(0, 0, 0) : ctx.getPosition();
BlockPos pos = context == null ? new BlockPos(0, 0, 0) : ((BlockRenderContextSheet)context).getPosition();
rand.setSeed(MathHelper.getCoordinateRandom(pos.getX(), pos.getY(), pos.getZ()));
rand.nextBoolean();

// TODO this will NOT work. Need some kind of dummy context.
int w = ctx == null ? 2 : ctx.getXSize();
int h = ctx == null ? 2 : ctx.getYSize();
int w = getBlockRenderType().getXSize();
int h = getBlockRenderType().getYSize();
float intervalX = 16 / w;
float intervalY = 16 / h;

Loading