pick 97420a31d The big reformat of 2020
This commit is contained in:
@@ -18,11 +18,11 @@
|
||||
|
||||
package appeng.client.render;
|
||||
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.Random;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import net.minecraft.block.BlockState;
|
||||
@@ -40,75 +40,65 @@ import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
|
||||
import appeng.client.render.cablebus.FacadeBuilder;
|
||||
import appeng.items.parts.ItemFacade;
|
||||
|
||||
|
||||
/**
|
||||
* This baked model class is used as a dispatcher to redirect the renderer to the *real* model that should be used based
|
||||
* on the item stack.
|
||||
* A custom Item Override List is used to accomplish this.
|
||||
* This baked model class is used as a dispatcher to redirect the renderer to
|
||||
* the *real* model that should be used based on the item stack. A custom Item
|
||||
* Override List is used to accomplish this.
|
||||
*/
|
||||
public class FacadeDispatcherBakedModel extends DelegateBakedModel
|
||||
{
|
||||
private final FacadeBuilder facadeBuilder;
|
||||
private final Int2ObjectMap<FacadeBakedItemModel> cache = new Int2ObjectArrayMap<>();
|
||||
public class FacadeDispatcherBakedModel extends DelegateBakedModel {
|
||||
private final FacadeBuilder facadeBuilder;
|
||||
private final Int2ObjectMap<FacadeBakedItemModel> cache = new Int2ObjectArrayMap<>();
|
||||
|
||||
public FacadeDispatcherBakedModel( IBakedModel baseModel, FacadeBuilder facadeBuilder )
|
||||
{
|
||||
super( baseModel );
|
||||
this.facadeBuilder = facadeBuilder;
|
||||
}
|
||||
public FacadeDispatcherBakedModel(IBakedModel baseModel, FacadeBuilder facadeBuilder) {
|
||||
super(baseModel);
|
||||
this.facadeBuilder = facadeBuilder;
|
||||
}
|
||||
|
||||
// This is never used. See the item override list below.
|
||||
@Override
|
||||
public List<BakedQuad> getQuads( @Nullable BlockState state, @Nullable Direction side, Random rand )
|
||||
{
|
||||
return Collections.emptyList();
|
||||
}
|
||||
// This is never used. See the item override list below.
|
||||
@Override
|
||||
public List<BakedQuad> getQuads(@Nullable BlockState state, @Nullable Direction side, Random rand) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isGui3d()
|
||||
{
|
||||
return this.getBaseModel().isGui3d();
|
||||
}
|
||||
@Override
|
||||
public boolean isGui3d() {
|
||||
return this.getBaseModel().isGui3d();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean func_230044_c_()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
@Override
|
||||
public boolean func_230044_c_() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isBuiltInRenderer()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
@Override
|
||||
public boolean isBuiltInRenderer() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemOverrideList getOverrides()
|
||||
{
|
||||
return new ItemOverrideList()
|
||||
{
|
||||
@Override
|
||||
public IBakedModel getModelWithOverrides( IBakedModel originalModel, ItemStack stack, World world, LivingEntity entity )
|
||||
{
|
||||
if( !( stack.getItem() instanceof ItemFacade ) )
|
||||
{
|
||||
return originalModel;
|
||||
}
|
||||
@Override
|
||||
public ItemOverrideList getOverrides() {
|
||||
return new ItemOverrideList() {
|
||||
@Override
|
||||
public IBakedModel getModelWithOverrides(IBakedModel originalModel, ItemStack stack, World world,
|
||||
LivingEntity entity) {
|
||||
if (!(stack.getItem() instanceof ItemFacade)) {
|
||||
return originalModel;
|
||||
}
|
||||
|
||||
ItemFacade itemFacade = (ItemFacade) stack.getItem();
|
||||
ItemFacade itemFacade = (ItemFacade) stack.getItem();
|
||||
|
||||
ItemStack textureItem = itemFacade.getTextureItem( stack );
|
||||
ItemStack textureItem = itemFacade.getTextureItem(stack);
|
||||
|
||||
int hash = Objects.hash( textureItem.getItem().getRegistryName(), textureItem.getTag() );
|
||||
FacadeBakedItemModel model = FacadeDispatcherBakedModel.this.cache.get( hash );
|
||||
if( model == null )
|
||||
{
|
||||
model = new FacadeBakedItemModel( FacadeDispatcherBakedModel.this.getBaseModel(), textureItem, FacadeDispatcherBakedModel.this.facadeBuilder );
|
||||
FacadeDispatcherBakedModel.this.cache.put( hash, model );
|
||||
}
|
||||
int hash = Objects.hash(textureItem.getItem().getRegistryName(), textureItem.getTag());
|
||||
FacadeBakedItemModel model = FacadeDispatcherBakedModel.this.cache.get(hash);
|
||||
if (model == null) {
|
||||
model = new FacadeBakedItemModel(FacadeDispatcherBakedModel.this.getBaseModel(), textureItem,
|
||||
FacadeDispatcherBakedModel.this.facadeBuilder);
|
||||
FacadeDispatcherBakedModel.this.cache.put(hash, model);
|
||||
}
|
||||
|
||||
return model;
|
||||
}
|
||||
};
|
||||
}
|
||||
return model;
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user