Fix blockstate id map calculation. (#5279)
This commit is contained in:
parent
3765d912a5
commit
e98951ee65
11 changed files with 261 additions and 459 deletions
|
@ -181,7 +181,15 @@
|
|||
func_196254_a("dropper", new BlockDropper(Block.Builder.func_200945_a(Material.field_151576_e).func_200943_b(3.5F)));
|
||||
func_196254_a("white_terracotta", new Block(Block.Builder.func_200949_a(Material.field_151576_e, MapColor.field_193561_M).func_200948_a(1.25F, 4.2F)));
|
||||
func_196254_a("orange_terracotta", new Block(Block.Builder.func_200949_a(Material.field_151576_e, MapColor.field_193562_N).func_200948_a(1.25F, 4.2F)));
|
||||
@@ -1604,4 +1620,83 @@
|
||||
@@ -1464,6 +1480,7 @@
|
||||
func_196254_a("structure_block", new BlockStructure(Block.Builder.func_200949_a(Material.field_151573_f, MapColor.field_197656_x).func_200948_a(-1.0F, 3600000.0F)));
|
||||
field_149771_c.func_177776_a();
|
||||
|
||||
+ if(false) // Processed in GameData.BlockCallbacks#onBake
|
||||
for(Block block80 : field_149771_c) {
|
||||
for(IBlockState iblockstate : block80.func_176194_O().func_177619_a()) {
|
||||
field_176229_d.func_195867_b(iblockstate);
|
||||
@@ -1604,4 +1621,83 @@
|
||||
return Objects.hash(this.field_212164_a, this.field_212165_b, this.field_212166_c);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -78,6 +78,7 @@ public class ForgeRegistry<V extends IForgeRegistryEntry<V>> implements IForgeRe
|
|||
private final AddCallback<V> add;
|
||||
private final ClearCallback<V> clear;
|
||||
private final ValidateCallback<V> validate;
|
||||
private final BakeCallback<V> bake;
|
||||
private final MissingFactory<V> missing;
|
||||
private final BitSet availabilityMap;
|
||||
private final Set<ResourceLocation> dummies = Sets.newHashSet();
|
||||
|
@ -94,23 +95,27 @@ public class ForgeRegistry<V extends IForgeRegistryEntry<V>> implements IForgeRe
|
|||
private V defaultValue = null;
|
||||
boolean isFrozen = false;
|
||||
|
||||
ForgeRegistry(Class<V> superType, ResourceLocation defaultKey, int min, int max, @Nullable CreateCallback<V> create, @Nullable AddCallback<V> add, @Nullable ClearCallback<V> clear, @Nullable ValidateCallback<V> validate, RegistryManager stage, boolean allowOverrides, boolean isModifiable, @Nullable DummyFactory<V> dummyFactory, @Nullable MissingFactory<V> missing)
|
||||
private final RegistryBuilder<V> builder;
|
||||
|
||||
ForgeRegistry(RegistryManager stage, RegistryBuilder<V> builder)
|
||||
{
|
||||
this.builder = builder;
|
||||
this.stage = stage;
|
||||
this.superType = superType;
|
||||
this.defaultKey = defaultKey;
|
||||
this.min = min;
|
||||
this.max = max;
|
||||
this.superType = builder.getType();
|
||||
this.defaultKey = builder.getDefault();
|
||||
this.min = builder.getMinId();
|
||||
this.max = builder.getMaxId();
|
||||
this.availabilityMap = new BitSet(Math.min(max + 1, 0x0FFF));
|
||||
this.create = create;
|
||||
this.add = add;
|
||||
this.clear = clear;
|
||||
this.validate = validate;
|
||||
this.missing = missing;
|
||||
this.create = builder.getCreate();
|
||||
this.add = builder.getAdd();
|
||||
this.clear = builder.getClear();
|
||||
this.validate = builder.getValidate();
|
||||
this.bake = builder.getBake();
|
||||
this.missing = builder.getMissingFactory();
|
||||
this.dummyFactory = builder.getDummyFactory();
|
||||
this.isDelegated = ForgeRegistryEntry.class.isAssignableFrom(superType); //TODO: Make this IDelegatedRegistryEntry?
|
||||
this.allowOverrides = allowOverrides;
|
||||
this.isModifiable = isModifiable;
|
||||
this.dummyFactory = dummyFactory;
|
||||
this.allowOverrides = builder.getAllowOverrides();
|
||||
this.isModifiable = builder.getAllowModifications();
|
||||
if (this.create != null)
|
||||
this.create.onCreate(this, stage);
|
||||
}
|
||||
|
@ -268,7 +273,7 @@ public class ForgeRegistry<V extends IForgeRegistryEntry<V>> implements IForgeRe
|
|||
|
||||
ForgeRegistry<V> copy(RegistryManager stage)
|
||||
{
|
||||
return new ForgeRegistry<V>(superType, defaultKey, min, max, create, add, clear, validate, stage, allowOverrides, isModifiable, dummyFactory, missing);
|
||||
return new ForgeRegistry<>(stage, builder);
|
||||
}
|
||||
|
||||
int add(int id, V value)
|
||||
|
@ -465,6 +470,12 @@ public class ForgeRegistry<V extends IForgeRegistryEntry<V>> implements IForgeRe
|
|||
}
|
||||
}
|
||||
|
||||
public void bake()
|
||||
{
|
||||
if (this.bake != null)
|
||||
this.bake.onBake(this, this.stage);
|
||||
}
|
||||
|
||||
void sync(ResourceLocation name, ForgeRegistry<V> from)
|
||||
{
|
||||
LOGGER.debug(REGISTRIES,"Registry {} Sync: {} -> {}", this.superType.getSimpleName(), this.stage.getName(), from.stage.getName());
|
||||
|
|
|
@ -19,10 +19,7 @@
|
|||
|
||||
package net.minecraftforge.registries;
|
||||
|
||||
import com.google.common.collect.HashBiMap;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.google.common.collect.Maps;
|
||||
import com.google.common.collect.Multimap;
|
||||
import com.google.common.collect.*;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockAir;
|
||||
import net.minecraft.block.material.Material;
|
||||
|
@ -33,6 +30,7 @@ import net.minecraft.item.Item;
|
|||
import net.minecraft.item.ItemBlock;
|
||||
import net.minecraft.potion.Potion;
|
||||
import net.minecraft.potion.PotionType;
|
||||
import net.minecraft.state.StateContainer;
|
||||
import net.minecraft.tileentity.TileEntityType;
|
||||
import net.minecraft.util.ObjectIntIdentityMap;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
|
@ -43,14 +41,18 @@ import net.minecraft.world.biome.Biome;
|
|||
import net.minecraftforge.common.MinecraftForge;
|
||||
import net.minecraftforge.event.RegistryEvent;
|
||||
import net.minecraftforge.event.RegistryEvent.MissingMappings;
|
||||
import net.minecraftforge.fml.common.EnhancedRuntimeException;
|
||||
import net.minecraftforge.fml.common.registry.VillagerRegistry.VillagerProfession;
|
||||
import net.minecraftforge.fml.ModThreadContext;
|
||||
import net.minecraftforge.fml.StartupQuery;
|
||||
import net.minecraftforge.fml.common.EnhancedRuntimeException;
|
||||
import net.minecraftforge.fml.common.registry.VillagerRegistry.VillagerProfession;
|
||||
import net.minecraftforge.fml.common.thread.EffectiveSide;
|
||||
import org.apache.commons.lang3.Validate;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.apache.logging.log4j.Marker;
|
||||
import org.apache.logging.log4j.MarkerManager;
|
||||
|
||||
import com.google.common.collect.ArrayListMultimap;
|
||||
import com.google.common.collect.BiMap;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
|
@ -62,17 +64,6 @@ import java.util.function.BiConsumer;
|
|||
import java.util.function.Predicate;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import net.minecraftforge.fml.common.thread.EffectiveSide;
|
||||
import org.apache.commons.lang3.Validate;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.apache.logging.log4j.Marker;
|
||||
import org.apache.logging.log4j.MarkerManager;
|
||||
|
||||
import net.minecraftforge.fml.common.EnhancedRuntimeException.WrappedPrintStream;
|
||||
|
||||
/**
|
||||
* INTERNAL ONLY
|
||||
* MODDERS SHOULD HAVE NO REASON TO USE THIS CLASS
|
||||
|
@ -226,7 +217,10 @@ public class GameData
|
|||
reg.validateContent(name);
|
||||
reg.freeze();
|
||||
});
|
||||
RegistryManager.ACTIVE.registries.forEach((name, reg) -> reg.freeze());
|
||||
RegistryManager.ACTIVE.registries.forEach((name, reg) -> {
|
||||
reg.freeze();
|
||||
reg.bake();
|
||||
});
|
||||
|
||||
// the id mapping is finalized, no ids actually changed but this is a good place to tell everyone to 'bake' their stuff.
|
||||
//Loader.instance().fireRemapEvent(ImmutableMap.of(), true);
|
||||
|
@ -250,6 +244,7 @@ public class GameData
|
|||
final Class<? extends IForgeRegistryEntry> clazz = RegistryManager.ACTIVE.getSuperType(r.getKey());
|
||||
loadRegistry(r.getKey(), RegistryManager.FROZEN, RegistryManager.ACTIVE, clazz, true);
|
||||
}
|
||||
RegistryManager.ACTIVE.registries.forEach((name, reg) -> reg.bake());
|
||||
// the id mapping has reverted, fire remap events for those that care about id changes
|
||||
//Loader.instance().fireRemapEvent(ImmutableMap.of(), true);
|
||||
|
||||
|
@ -273,23 +268,47 @@ public class GameData
|
|||
{
|
||||
this.identityMap.clear();
|
||||
this.objectList.clear();
|
||||
this.nextId = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private static class BlockCallbacks implements IForgeRegistry.AddCallback<Block>, IForgeRegistry.ClearCallback<Block>, IForgeRegistry.CreateCallback<Block>, IForgeRegistry.DummyFactory<Block>
|
||||
private static class BlockCallbacks implements IForgeRegistry.AddCallback<Block>, IForgeRegistry.ClearCallback<Block>, IForgeRegistry.BakeCallback<Block>, IForgeRegistry.CreateCallback<Block>, IForgeRegistry.DummyFactory<Block>
|
||||
{
|
||||
static final BlockCallbacks INSTANCE = new BlockCallbacks();
|
||||
|
||||
@Override
|
||||
public void onAdd(IForgeRegistryInternal<Block> owner, RegistryManager stage, int id, Block block, @Nullable Block oldBlock)
|
||||
{
|
||||
@SuppressWarnings("unchecked")
|
||||
ClearableObjectIntIdentityMap<IBlockState> blockstateMap = owner.getSlaveMap(BLOCKSTATE_TO_ID, ClearableObjectIntIdentityMap.class);
|
||||
if (oldBlock != null)
|
||||
{
|
||||
StateContainer<Block, IBlockState> oldContainer = oldBlock.getStateContainer();
|
||||
StateContainer<Block, IBlockState> newContainer = block.getStateContainer();
|
||||
ImmutableList<IBlockState> oldValidStates = oldContainer.getValidStates();
|
||||
ImmutableList<IBlockState> newValidStates = newContainer.getValidStates();
|
||||
|
||||
int offset = 0;
|
||||
for (IBlockState state : block.getStateContainer().getValidStates())
|
||||
blockstateMap.put(state, id + offset++);
|
||||
// Test vanilla blockstates, if the number matches, make sure they also match in their string representations
|
||||
if (block.getRegistryName().getNamespace().equals("minecraft") && (
|
||||
oldValidStates.size() != newValidStates.size() ||
|
||||
!Streams.zip(oldValidStates.stream().map(Object::toString),
|
||||
newValidStates.stream().map(Object::toString),
|
||||
String::equals).allMatch(v -> v)))
|
||||
{
|
||||
String oldSequence = oldContainer.getProperties().stream()
|
||||
.map(s -> String.format("%s={%s}", s.getName(),
|
||||
s.getAllowedValues().stream().map(Object::toString).collect(Collectors.joining( "," ))))
|
||||
.collect(Collectors.joining(";"));
|
||||
String newSequence = newContainer.getProperties().stream()
|
||||
.map(s -> String.format("%s={%s}", s.getName(),
|
||||
s.getAllowedValues().stream().map(Object::toString).collect(Collectors.joining( "," ))))
|
||||
.collect(Collectors.joining(";"));
|
||||
|
||||
LOGGER.error("Registry replacements for vanilla block '{}' must not change the number or order of blockstates.\n"+
|
||||
"\tOld: {}\n"+
|
||||
"\tNew: {}", block.getRegistryName(), oldSequence, newSequence);
|
||||
|
||||
throw new RuntimeException("Invalid vanilla replacement. See log for details.");
|
||||
}
|
||||
}
|
||||
/*
|
||||
|
||||
if ("minecraft:tripwire".equals(block.getRegistryName().toString())) //Tripwire is crap so we have to special case whee!
|
||||
|
@ -362,6 +381,22 @@ public class GameData
|
|||
GameData.forceRegistryName(ret, key);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBake(IForgeRegistryInternal<Block> owner, RegistryManager stage)
|
||||
{
|
||||
@SuppressWarnings("unchecked")
|
||||
ClearableObjectIntIdentityMap<IBlockState> blockstateMap = owner.getSlaveMap(BLOCKSTATE_TO_ID, ClearableObjectIntIdentityMap.class);
|
||||
|
||||
for (Block block : owner)
|
||||
{
|
||||
for (IBlockState state : block.getStateContainer().getValidStates())
|
||||
{
|
||||
blockstateMap.add(state);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static class BlockDummyAir extends BlockAir //A named class so DummyBlockReplacementTest can detect if its a dummy
|
||||
{
|
||||
private BlockDummyAir(Block.Builder builder)
|
||||
|
@ -688,8 +723,12 @@ public class GameData
|
|||
loadRegistry(key, STAGING, RegistryManager.ACTIVE, registrySuperType, true);
|
||||
});
|
||||
|
||||
// Dump the active registry
|
||||
RegistryManager.ACTIVE.registries.forEach((name, reg) -> reg.dump(name));
|
||||
RegistryManager.ACTIVE.registries.forEach((name, reg) -> {
|
||||
reg.bake();
|
||||
|
||||
// Dump the active registry
|
||||
reg.dump(name);
|
||||
});
|
||||
|
||||
// Tell mods that the ids have changed
|
||||
//Loader.instance().fireRemapEvent(remaps, false);
|
||||
|
|
|
@ -95,6 +95,14 @@ public interface IForgeRegistry<V extends IForgeRegistryEntry<V>> extends Iterab
|
|||
void onValidate(IForgeRegistryInternal<V> owner, RegistryManager stage, int id, ResourceLocation key, V obj);
|
||||
}
|
||||
|
||||
/**
|
||||
* Callback fired when the registry is done processing. Used to calculate state ID maps.
|
||||
*/
|
||||
interface BakeCallback<V extends IForgeRegistryEntry<V>>
|
||||
{
|
||||
void onBake(IForgeRegistryInternal<V> owner, RegistryManager stage);
|
||||
}
|
||||
|
||||
/**
|
||||
* Factory for creating dummy entries, allowing worlds to be loaded and keep the missing block references.
|
||||
*/
|
||||
|
|
|
@ -41,6 +41,7 @@ public class RegistryBuilder<T extends IForgeRegistryEntry<T>>
|
|||
private List<ClearCallback<T>> clearCallback = Lists.newArrayList();
|
||||
private List<CreateCallback<T>> createCallback = Lists.newArrayList();
|
||||
private List<ValidateCallback<T>> validateCallback = Lists.newArrayList();
|
||||
private List<BakeCallback<T>> bakeCallback = Lists.newArrayList();
|
||||
private boolean saveToDisc = true;
|
||||
private boolean allowOverrides = true;
|
||||
private boolean allowModifications = false;
|
||||
|
@ -88,6 +89,8 @@ public class RegistryBuilder<T extends IForgeRegistryEntry<T>>
|
|||
this.add((CreateCallback<T>)inst);
|
||||
if (inst instanceof ValidateCallback)
|
||||
this.add((ValidateCallback<T>)inst);
|
||||
if (inst instanceof BakeCallback)
|
||||
this.add((BakeCallback<T>)inst);
|
||||
if (inst instanceof DummyFactory)
|
||||
this.set((DummyFactory<T>)inst);
|
||||
if (inst instanceof MissingFactory)
|
||||
|
@ -119,6 +122,12 @@ public class RegistryBuilder<T extends IForgeRegistryEntry<T>>
|
|||
return this;
|
||||
}
|
||||
|
||||
public RegistryBuilder<T> add(BakeCallback<T> bake)
|
||||
{
|
||||
this.bakeCallback.add(bake);
|
||||
return this;
|
||||
}
|
||||
|
||||
public RegistryBuilder<T> set(DummyFactory<T> factory)
|
||||
{
|
||||
this.dummyFactory = factory;
|
||||
|
@ -151,12 +160,11 @@ public class RegistryBuilder<T extends IForgeRegistryEntry<T>>
|
|||
|
||||
public IForgeRegistry<T> create()
|
||||
{
|
||||
return RegistryManager.ACTIVE.createRegistry(registryName, registryType, optionalDefaultKey, minId, maxId,
|
||||
getAdd(), getClear(), getCreate(), getValidate(), saveToDisc, allowOverrides, allowModifications, dummyFactory, missingFactory);
|
||||
return RegistryManager.ACTIVE.createRegistry(registryName, this);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private AddCallback<T> getAdd()
|
||||
public AddCallback<T> getAdd()
|
||||
{
|
||||
if (addCallback.isEmpty())
|
||||
return null;
|
||||
|
@ -171,7 +179,7 @@ public class RegistryBuilder<T extends IForgeRegistryEntry<T>>
|
|||
}
|
||||
|
||||
@Nullable
|
||||
private ClearCallback<T> getClear()
|
||||
public ClearCallback<T> getClear()
|
||||
{
|
||||
if (clearCallback.isEmpty())
|
||||
return null;
|
||||
|
@ -186,7 +194,7 @@ public class RegistryBuilder<T extends IForgeRegistryEntry<T>>
|
|||
}
|
||||
|
||||
@Nullable
|
||||
private CreateCallback<T> getCreate()
|
||||
public CreateCallback<T> getCreate()
|
||||
{
|
||||
if (createCallback.isEmpty())
|
||||
return null;
|
||||
|
@ -201,7 +209,7 @@ public class RegistryBuilder<T extends IForgeRegistryEntry<T>>
|
|||
}
|
||||
|
||||
@Nullable
|
||||
private ValidateCallback<T> getValidate()
|
||||
public ValidateCallback<T> getValidate()
|
||||
{
|
||||
if (validateCallback.isEmpty())
|
||||
return null;
|
||||
|
@ -214,4 +222,67 @@ public class RegistryBuilder<T extends IForgeRegistryEntry<T>>
|
|||
cb.onValidate(owner, stage, id, key, obj);
|
||||
};
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public BakeCallback<T> getBake()
|
||||
{
|
||||
if (bakeCallback.isEmpty())
|
||||
return null;
|
||||
if (bakeCallback.size() == 1)
|
||||
return bakeCallback.get(0);
|
||||
|
||||
return (owner, stage) ->
|
||||
{
|
||||
for (BakeCallback<T> cb : this.bakeCallback)
|
||||
cb.onBake(owner, stage);
|
||||
};
|
||||
}
|
||||
|
||||
public Class<T> getType()
|
||||
{
|
||||
return registryType;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public ResourceLocation getDefault()
|
||||
{
|
||||
return this.optionalDefaultKey;
|
||||
}
|
||||
|
||||
public int getMinId()
|
||||
{
|
||||
return minId;
|
||||
}
|
||||
|
||||
public int getMaxId()
|
||||
{
|
||||
return maxId;
|
||||
}
|
||||
|
||||
public boolean getAllowOverrides()
|
||||
{
|
||||
return allowOverrides;
|
||||
}
|
||||
|
||||
public boolean getAllowModifications()
|
||||
{
|
||||
return allowModifications;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public DummyFactory<T> getDummyFactory()
|
||||
{
|
||||
return dummyFactory;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public MissingFactory<T> getMissingFactory()
|
||||
{
|
||||
return missingFactory;
|
||||
}
|
||||
|
||||
public boolean getSaveToDisc()
|
||||
{
|
||||
return saveToDisc;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,8 +25,6 @@ import java.util.Set;
|
|||
import java.util.function.Supplier;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import com.google.common.collect.BiMap;
|
||||
import com.google.common.collect.HashBiMap;
|
||||
import com.google.common.collect.Maps;
|
||||
|
@ -37,7 +35,6 @@ import net.minecraft.util.ResourceLocation;
|
|||
import net.minecraftforge.fml.network.FMLHandshakeMessages;
|
||||
import net.minecraftforge.fml.network.NetworkEvent;
|
||||
import net.minecraftforge.registries.ForgeRegistry.Snapshot;
|
||||
import net.minecraftforge.registries.IForgeRegistry.*;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
|
@ -101,23 +98,22 @@ public class RegistryManager
|
|||
return getRegistry(key);
|
||||
}
|
||||
|
||||
<V extends IForgeRegistryEntry<V>> ForgeRegistry<V> createRegistry(ResourceLocation name, Class<V> type, ResourceLocation defaultKey, int min, int max,
|
||||
@Nullable AddCallback<V> add, @Nullable ClearCallback<V> clear, @Nullable CreateCallback<V> create, @Nullable ValidateCallback<V> validate,
|
||||
boolean persisted, boolean allowOverrides, boolean isModifiable, @Nullable DummyFactory<V> dummyFactory, @Nullable MissingFactory<V> missing)
|
||||
<V extends IForgeRegistryEntry<V>> ForgeRegistry<V> createRegistry(ResourceLocation name, RegistryBuilder<V> builder)
|
||||
{
|
||||
Set<Class<?>> parents = Sets.newHashSet();
|
||||
findSuperTypes(type, parents);
|
||||
findSuperTypes(builder.getType(), parents);
|
||||
SetView<Class<?>> overlappedTypes = Sets.intersection(parents, superTypes.keySet());
|
||||
if (!overlappedTypes.isEmpty())
|
||||
{
|
||||
Class<?> foundType = overlappedTypes.iterator().next();
|
||||
LOGGER.error("Found existing registry of type {} named {}, you cannot create a new registry ({}) with type {}, as {} has a parent of that type", foundType, superTypes.get(foundType), name, type, type);
|
||||
LOGGER.error("Found existing registry of type {} named {}, you cannot create a new registry ({}) with type {}, as {} has a parent of that type",
|
||||
foundType, superTypes.get(foundType), name, builder.getType(), builder.getType());
|
||||
throw new IllegalArgumentException("Duplicate registry parent type found - you can only have one registry for a particular super type");
|
||||
}
|
||||
ForgeRegistry<V> reg = new ForgeRegistry<V>(type, defaultKey, min, max, create, add, clear, validate, this, allowOverrides, isModifiable, dummyFactory, missing);
|
||||
ForgeRegistry<V> reg = new ForgeRegistry<V>(this, builder);
|
||||
registries.put(name, reg);
|
||||
superTypes.put(type, name);
|
||||
if (persisted)
|
||||
superTypes.put(builder.getType(), name);
|
||||
if (builder.getSaveToDisc())
|
||||
this.persisted.add(name);
|
||||
return getRegistry(name);
|
||||
}
|
||||
|
|
|
@ -227,6 +227,7 @@ public net.minecraft.world.storage.SaveFormatOld field_75808_a # savesDirectory
|
|||
|
||||
protected net.minecraft.util.ObjectIntIdentityMap field_148749_a # internal map
|
||||
protected net.minecraft.util.ObjectIntIdentityMap field_148748_b # internal index list
|
||||
protected net.minecraft.util.ObjectIntIdentityMap field_195868_a # nextId
|
||||
#protected-f net.minecraft.util.RegistryNamespaced field_148759_a # identitymap
|
||||
|
||||
# GuiButton
|
||||
|
@ -385,4 +386,11 @@ public net.minecraft.world.storage.SaveHandler field_75771_c # playersDirectory
|
|||
public net.minecraft.item.BlockItemUseContext <init>(Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/item/ItemStack;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/util/EnumFacing;FFF)V
|
||||
|
||||
#EntitySpawnPlacementRegistry
|
||||
public net.minecraft.entity.EntitySpawnPlacementRegistry func_209346_a(Lnet/minecraft/entity/EntityType;Lnet/minecraft/entity/EntitySpawnPlacementRegistry$SpawnPlacementType;Lnet/minecraft/world/gen/Heightmap$Type;Lnet/minecraft/tags/Tag;)V # register
|
||||
public net.minecraft.entity.EntitySpawnPlacementRegistry func_209346_a(Lnet/minecraft/entity/EntityType;Lnet/minecraft/entity/EntitySpawnPlacementRegistry$SpawnPlacementType;Lnet/minecraft/world/gen/Heightmap$Type;Lnet/minecraft/tags/Tag;)V # register
|
||||
|
||||
# Block$Builder
|
||||
public net.minecraft.block.Block$Builder func_200947_a(Lnet/minecraft/block/SoundType;)Lnet/minecraft/block/Block$Builder; # sound
|
||||
public net.minecraft.block.Block$Builder func_200951_a(I)Lnet/minecraft/block/Block$Builder; # lightValue
|
||||
public net.minecraft.block.Block$Builder func_200944_c()Lnet/minecraft/block/Block$Builder; # needsRandomTick
|
||||
public net.minecraft.block.Block$Builder func_208770_d()Lnet/minecraft/block/Block$Builder; # variableOpacity
|
||||
public net.minecraft.block.Block$Builder func_200943_b(F)Lnet/minecraft/block/Block$Builder; # hardnessAndResistance
|
||||
|
|
|
@ -1,396 +0,0 @@
|
|||
#Main Forge Access Transformer configuration file
|
||||
# SoundManager
|
||||
public net.minecraft.client.audio.SoundManager field_148622_c #sndHandler
|
||||
# Block
|
||||
public net.minecraft.block.Block <init>(Lnet/minecraft/block/material/Material;)V
|
||||
public net.minecraft.block.Block func_149752_b(F)Lnet.minecraft.block.Block; #setResistance
|
||||
public net.minecraft.block.Block func_149711_c(F)Lnet.minecraft.block.Block; #setHardness
|
||||
public net.minecraft.block.Block func_149713_g(I)Lnet.minecraft.block.Block; #setLightOpacity
|
||||
public net.minecraft.block.Block func_149715_a(F)Lnet.minecraft.block.Block; #setLightValue
|
||||
public net.minecraft.block.Block func_149722_s()Lnet.minecraft.block.Block; #setBlockUnbreakable
|
||||
public net.minecraft.block.Block func_149675_a(Z)Lnet.minecraft.block.Block; #setTickRandomly
|
||||
public net.minecraft.block.Block func_180637_b(Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;I)V # dropXpOnBlockBreak
|
||||
# BlockFire
|
||||
public net.minecraft.block.BlockFire func_176532_c(Lnet/minecraft/block/Block;)I # getFireSpreadSpeed
|
||||
public net.minecraft.block.BlockFire func_176534_d(Lnet/minecraft/block/Block;)I # getFireSpreadSpeed
|
||||
# Item
|
||||
public net.minecraft.item.Item func_77656_e(I)Lnet.minecraft.item.Item; #setMaxDamage
|
||||
public net.minecraft.item.Item func_77627_a(Z)Lnet.minecraft.item.Item; #setHasSubtypes
|
||||
public net.minecraft.item.Item field_185051_m # properties
|
||||
# Fluid
|
||||
public net.minecraft.fluid.Fluid func_180664_k()Lnet/minecraft/util/BlockRenderLayer; # getRenderLayer
|
||||
# Entity
|
||||
public net.minecraft.entity.Entity func_70022_Q()Ljava/lang/String; # getEntityString
|
||||
# EntityPlayer
|
||||
public net.minecraft.entity.player.EntityPlayer func_71053_j()V #closeScreen
|
||||
# EntityTrackerEntry
|
||||
public net.minecraft.entity.EntityTrackerEntry field_73134_o # trackingPlayers
|
||||
# Save Location
|
||||
public net.minecraft.world.chunk.storage.AnvilChunkLoader field_75825_d # chunkSaveLocation
|
||||
public net.minecraft.world.gen.ChunkProviderServer field_73247_e # currentChunkLoader
|
||||
# World
|
||||
public-f net.minecraft.world.World field_72982_D #villageCollectionObj
|
||||
# Biome
|
||||
public net.minecraft.world.biome.Biome *() #Everything protected->public
|
||||
public net.minecraft.world.biome.BiomeForest *()
|
||||
public net.minecraft.world.biome.BiomeHills *()
|
||||
public net.minecraft.world.biome.BiomeMesa *()
|
||||
public net.minecraft.world.biome.BiomePlains *()
|
||||
public net.minecraft.world.biome.BiomeSavanna *()
|
||||
public net.minecraft.world.biome.BiomeSnow *()
|
||||
public net.minecraft.world.biome.BiomeTaiga *()
|
||||
public net.minecraft.world.biome.Biome$BiomeProperties *()
|
||||
# Map Gen Biome Lists
|
||||
public+f net.minecraft.world.gen.structure.MapGenStronghold field_151546_e
|
||||
# MapGenVillage
|
||||
public-f net.minecraft.world.gen.structure.MapGenVillage field_75055_e #villageSpawnBiomes
|
||||
# LayerUtil
|
||||
public net.minecraft.world.gen.layer.LayerUtil func_202829_a(JLnet/minecraft/world/gen/layer/traits/IAreaTransformer1;Lnet/minecraft/world/gen/area/IAreaFactory;ILjava/util/function/LongFunction;)Lnet/minecraft/world/gen/area/IAreaFactory; # repeat
|
||||
# ShapedRecipes
|
||||
public+f net.minecraft.item.crafting.ShapedRecipes field_77574_d #recipeItems
|
||||
public+f net.minecraft.item.crafting.ShapedRecipes field_77576_b #recipeWidth
|
||||
public+f net.minecraft.item.crafting.ShapedRecipes field_77577_c #recipeHeight
|
||||
# ShapelessRecipes
|
||||
public net.minecraft.item.crafting.ShapelessRecipes field_77579_b #recipeItems
|
||||
# ContainerRepair
|
||||
public net.minecraft.inventory.ContainerRepair field_82856_l #ContainerRepair/stackSizeToBeUsedInRepair
|
||||
# BiomeDecorator
|
||||
public net.minecraft.world.biome.BiomeDecorator *
|
||||
# CreativeTabs
|
||||
public-f net.minecraft.creativetab.CreativeTabs field_78032_a # creativeTabArray non-final
|
||||
# World stuff
|
||||
public net.minecraft.world.World field_73003_n #prevRainingStrength
|
||||
public net.minecraft.world.World field_73004_o #rainingStrength
|
||||
public net.minecraft.world.World field_73017_q #thunderingStrength
|
||||
public net.minecraft.world.World field_73018_p #prevThunderingStrength
|
||||
public net.minecraft.world.World func_72923_a(Lnet/minecraft/entity/Entity;)V #onEntityAdded
|
||||
public net.minecraft.world.World func_72847_b(Lnet/minecraft/entity/Entity;)V #onEntityRemoved
|
||||
public net.minecraft.world.WorldServer func_72923_a(Lnet/minecraft/entity/Entity;)V #onEntityAdded
|
||||
public net.minecraft.world.WorldServer func_72847_b(Lnet/minecraft/entity/Entity;)V #onEntityRemoved
|
||||
public net.minecraft.client.multiplayer.WorldClient func_72923_a(Lnet/minecraft/entity/Entity;)V #onEntityAdded
|
||||
public net.minecraft.client.multiplayer.WorldClient func_72847_b(Lnet/minecraft/entity/Entity;)V #onEntityRemoved
|
||||
public net.minecraft.world.World func_175701_a(Lnet/minecraft/util/math/BlockPos;)Z # isValid
|
||||
public net.minecraft.world.World func_189509_E(Lnet/minecraft/util/math/BlockPos;)Z # isOutsideBuildHeight
|
||||
# GuiIngame
|
||||
protected net.minecraft.client.gui.GuiIngame *
|
||||
protected net.minecraft.client.gui.GuiIngame func_194798_c(F)V
|
||||
protected net.minecraft.client.gui.GuiIngame func_194800_d(F)V
|
||||
protected net.minecraft.client.gui.GuiIngame func_194805_e(F)V
|
||||
protected net.minecraft.client.gui.GuiIngame func_194808_p()V
|
||||
protected net.minecraft.client.gui.GuiIngame func_194802_a(Lnet/minecraft/scoreboard/ScoreObjective;)V
|
||||
# ItemStack
|
||||
default net.minecraft.item.ItemStack field_77991_e
|
||||
# MapGenStructureIO
|
||||
public net.minecraft.world.gen.structure.MapGenStructureIO func_143034_b(Ljava/lang/Class;Ljava/lang/String;)V # registerStart
|
||||
public net.minecraft.world.gen.structure.MapGenStructureIO func_143031_a(Ljava/lang/Class;Ljava/lang/String;)V # registerPiece
|
||||
# Stronghold
|
||||
public net.minecraft.world.gen.structure.StructureStrongholdPieces$Stronghold
|
||||
# Packets
|
||||
public net.minecraft.network.play.server.SPacketBlockChange field_148883_d # blockState
|
||||
# WorldType
|
||||
public-f net.minecraft.world.WorldType field_77139_a #worldTypes
|
||||
# DamageSource
|
||||
public net.minecraft.util.DamageSource *() #All methods public, most are already
|
||||
# EntityAITasks
|
||||
public net.minecraft.entity.ai.EntityAITasks field_75782_a # taskEntries
|
||||
# EntityXPOrb
|
||||
public net.minecraft.entity.item.EntityXPOrb field_70530_e # xpValue
|
||||
# Village
|
||||
public net.minecraft.world.gen.structure.StructureVillagePieces$Village
|
||||
# RenderPlayer
|
||||
#public net.minecraft.client.renderer.entity.RenderBiped field_77071_a #modelBipedMain
|
||||
# ChunkProviderServer
|
||||
public net.minecraft.world.gen.ChunkProviderServer field_186029_c # chunkGenerator
|
||||
public net.minecraft.world.gen.ChunkProviderServer field_73244_f # loadedChunkHashMap
|
||||
#public net.minecraft.world.gen.ChunkProviderServer field_73245_g # loadedChunks
|
||||
public net.minecraft.world.gen.ChunkProviderServer field_73251_h # worldObj
|
||||
|
||||
# RenderEntityItem
|
||||
protected net.minecraft.client.renderer.entity.RenderEntityItem func_177078_a(Lnet/minecraft/item/ItemStack;)I # getMiniItemCount
|
||||
public net.minecraft.item.crafting.RecipeTippedArrow
|
||||
public net.minecraft.item.crafting.ShieldRecipes$Decoration
|
||||
public net.minecraft.item.crafting.RecipesBanners$RecipeAddPattern
|
||||
public net.minecraft.item.crafting.RecipesBanners$RecipeDuplicatePattern
|
||||
public net.minecraft.block.state.BlockStateContainer$StateImplementation
|
||||
protected net.minecraft.block.state.BlockStateContainer$StateImplementation <init>(Lnet/minecraft/block/Block;Lcom/google/common/collect/ImmutableMap;)V
|
||||
protected net.minecraft.block.state.BlockStateContainer$StateImplementation field_177238_c # propertyValueTable
|
||||
|
||||
# ModelBlock
|
||||
public net.minecraft.client.renderer.block.model.ModelBlock field_178318_c # textures
|
||||
public net.minecraft.client.renderer.block.model.ModelBlock field_178315_d # parent
|
||||
public net.minecraft.client.renderer.block.model.ModelBlock field_178322_i # ambientOcclusion
|
||||
public net.minecraft.client.renderer.block.model.ModelBlock func_209568_a(Lnet/minecraft/client/renderer/block/model/ModelBlock;Ljava/util/function/Function;Ljava/util/function/Function;)Lnet/minecraft/client/renderer/block/model/ItemOverrideList; # getOverrides
|
||||
public net.minecraft.client.renderer.block.model.ModelBlock func_187966_f()Ljava/util/List; # getOverrides
|
||||
|
||||
# ModelBakery
|
||||
public net.minecraft.client.renderer.block.model.ModelBakery field_177604_a # MODEL_MISSING
|
||||
protected net.minecraft.client.renderer.block.model.ModelBakery field_177602_b # LOCATIONS_BUILTIN_TEXTURES
|
||||
protected net.minecraft.client.renderer.block.model.ModelBakery field_177598_f # resourceManager
|
||||
protected net.minecraft.client.renderer.block.model.ModelBakery field_177599_g # sprites
|
||||
protected net.minecraft.client.renderer.block.model.ModelBakery field_177609_j # textureMap
|
||||
protected net.minecraft.client.renderer.block.model.ModelBakery field_177610_k # blockModelShapes
|
||||
protected net.minecraft.client.renderer.block.model.ModelBakery field_177605_n # bakedRegistry
|
||||
protected net.minecraft.client.renderer.block.model.ModelBakery field_177606_o # MODEL_GENERATED
|
||||
#protected net.minecraft.client.renderer.block.model.ModelBakery field_177618_p # MODEL_COMPASS
|
||||
#protected net.minecraft.client.renderer.block.model.ModelBakery field_177617_q # MODEL_CLOCK
|
||||
protected net.minecraft.client.renderer.block.model.ModelBakery field_177616_r # MODEL_ENTITY
|
||||
#protected net.minecraft.client.renderer.block.model.ModelBakery func_177591_a(Ljava/util/Collection;)V # loadVariants
|
||||
protected net.minecraft.client.renderer.block.model.ModelBakery func_177569_a(Lnet/minecraft/client/renderer/block/model/ModelBlockDefinition;Lnet/minecraft/client/renderer/block/model/ModelResourceLocation;)V # registerVariant
|
||||
protected net.minecraft.client.renderer.block.model.ModelBakery func_177586_a(Lnet/minecraft/util/ResourceLocation;)Lnet/minecraft/client/renderer/block/model/ModelBlockDefinition; # getModelBlockDefinition
|
||||
protected net.minecraft.client.renderer.block.model.ModelBakery func_177594_c(Lnet/minecraft/util/ResourceLocation;)Lnet/minecraft/client/renderer/block/model/ModelBlock; # loadModel
|
||||
protected net.minecraft.client.renderer.block.model.ModelBakery func_177592_e()V # registerVariantNames
|
||||
protected net.minecraft.client.renderer.block.model.ModelBakery func_177596_a(Lnet/minecraft/item/Item;)Ljava/util/List; # getVariantNames
|
||||
protected net.minecraft.client.renderer.block.model.ModelBakery func_177583_a(Ljava/lang/String;)Lnet/minecraft/util/ResourceLocation; # getItemLocation
|
||||
protected net.minecraft.client.renderer.block.model.ModelBakery func_177585_a(Lnet/minecraft/client/renderer/block/model/ModelBlock;)Ljava/util/Set; # getTextureLocations
|
||||
protected net.minecraft.client.renderer.block.model.ModelBakery func_177581_b(Lnet/minecraft/client/renderer/block/model/ModelBlock;)Z # hasItemModel
|
||||
protected net.minecraft.client.renderer.block.model.ModelBakery func_177587_c(Lnet/minecraft/client/renderer/block/model/ModelBlock;)Z # isCustomRenderer
|
||||
protected net.minecraft.client.renderer.block.model.ModelBakery func_177582_d(Lnet/minecraft/client/renderer/block/model/ModelBlock;)Lnet/minecraft/client/renderer/block/model/ModelBlock; # makeItemModel
|
||||
protected net.minecraft.client.renderer.block.model.ModelBakery func_177580_d(Lnet/minecraft/util/ResourceLocation;)Lnet/minecraft/util/ResourceLocation; # getModelLocation
|
||||
protected net.minecraft.client.renderer.block.model.ModelBakery func_188640_b()V # loadBlocks
|
||||
protected net.minecraft.client.renderer.block.model.ModelBakery func_177577_b()V # loadVariantItemModels
|
||||
protected net.minecraft.client.renderer.block.model.ModelBakery func_177590_d()V # loadItemModels
|
||||
protected net.minecraft.client.renderer.block.model.ModelBakery func_177595_c()V # loadVariantModels
|
||||
protected net.minecraft.client.renderer.block.model.ModelBakery func_188637_e()V # loadMultipartVariantModels
|
||||
protected net.minecraft.client.renderer.block.model.ModelBakery func_188638_a(Lnet/minecraft/client/renderer/block/model/ModelResourceLocation;Lnet/minecraft/client/renderer/block/model/VariantList;)V # loadVariantList
|
||||
#public net.minecraft.client.renderer.block.model.WeightedBakedModel field_177565_b # models
|
||||
|
||||
# ItemModelMesher
|
||||
# This field is public and uses int IDs, so we hide it and expose ItemModelMesherForge methods instead
|
||||
private net.minecraft.client.renderer.ItemModelMesher field_199313_a
|
||||
|
||||
# ItemOverrideList
|
||||
protected net.minecraft.client.renderer.block.model.ItemOverrideList <init>()V
|
||||
|
||||
# EnumFacing
|
||||
public net.minecraft.util.EnumFacing field_82609_l # VALUES
|
||||
public net.minecraft.util.EnumFacing field_176754_o # HORIZONTALS
|
||||
public net.minecraft.client.renderer.BufferBuilder func_78909_a(I)I # getColorIndex
|
||||
public net.minecraft.client.renderer.BufferBuilder func_178972_a(IIII)V # putColorRGB -- Add A?
|
||||
# ModelBlock Constructor
|
||||
#public net.minecraft.client.renderer.block.model.ModelBlock <init>(Lnet/minecraft/util/ResourceLocation;Ljava/util/List;Ljava/util/Map;ZZLnet/minecraft/client/renderer/block/model/ItemCameraTransforms;)V
|
||||
# RenderLivingEntity
|
||||
#public net.minecraft.client.renderer.entity.RenderLivingBase func_177094_a(Lnet/minecraft/client/renderer/entity/layers/LayerRenderer;)Z # addLayer
|
||||
|
||||
# S00PacketServerInfo
|
||||
public net.minecraft.network.status.server.SPacketServerInfo field_149297_a # GSON
|
||||
|
||||
# Resource Packs
|
||||
public net.minecraft.resources.FallbackResourceManager field_199023_a # resourcePacks
|
||||
public net.minecraft.resources.AbstractResourcePack field_195771_a # file
|
||||
|
||||
#Main FML Access Transformer configuration file
|
||||
# EntityList addMappings
|
||||
#public net.minecraft.entity.EntityList func_75618_a(Ljava/lang/Class;Ljava/lang/String;I)V
|
||||
#public net.minecraft.entity.EntityList func_75614_a(Ljava/lang/Class;Ljava/lang/String;III)V
|
||||
#public net.minecraft.entity.EntityList field_75625_b #nameToClassMap
|
||||
#public net.minecraft.entity.EntityList field_75626_c #classToNameMap
|
||||
#public net.minecraft.entity.EntityList field_75623_d #idToClassMap
|
||||
## RenderManager
|
||||
public net.minecraft.client.renderer.entity.RenderManager field_78729_o #renderers
|
||||
## TileEntityRendererDispatcher
|
||||
public net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher field_147559_m
|
||||
public net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher field_147557_n # fontRenderer - needed for rendering text in TESR items before entering world
|
||||
## EntityRenderer
|
||||
public net.minecraft.client.renderer.EntityRenderer func_175069_a(Lnet/minecraft/util/ResourceLocation;)V #loadShader
|
||||
## WeightedRandomItem
|
||||
public net.minecraft.util.WeightedRandom$Item field_76292_a #probability
|
||||
# EntityPlayer
|
||||
public net.minecraft.entity.player.EntityPlayer func_184816_a(Lnet/minecraft/entity/item/EntityItem;)Lnet/minecraft/item/ItemStack; # dropItemAndGetStack
|
||||
protected net.minecraft.entity.player.EntityPlayer field_71077_c # spawnPos
|
||||
protected net.minecraft.entity.player.EntityPlayer field_82248_d # spawnForced
|
||||
# EntityPlayerSP
|
||||
public net.minecraft.client.entity.EntityPlayerSP func_184816_a(Lnet/minecraft/entity/item/EntityItem;)Lnet/minecraft/item/ItemStack; # dropItemAndGetStack
|
||||
## EntityPlayerMP getNextWindowId
|
||||
public net.minecraft.entity.player.EntityPlayerMP func_71117_bO()V
|
||||
public net.minecraft.entity.player.EntityPlayerMP field_71139_cq
|
||||
## EntityAITaskEntry
|
||||
public net.minecraft.entity.ai.EntityAITasks$EntityAITaskEntry
|
||||
## EntityLiving
|
||||
public net.minecraft.entity.EntityLiving field_70714_bg #tasks
|
||||
public net.minecraft.entity.EntityLiving field_70715_bh #targetTasks
|
||||
## EntityMinecartContainer
|
||||
public net.minecraft.entity.item.EntityMinecartContainer field_94112_b #dropContentsWhenDead
|
||||
# GuiScreen
|
||||
public net.minecraft.client.gui.GuiScreen field_146297_k # minecraft instance - public because gui's outside access it
|
||||
# Minecraft
|
||||
public net.minecraft.client.Minecraft field_71446_o # textureManager
|
||||
public net.minecraft.client.Minecraft field_110450_ap # mcDefaultResourcePack
|
||||
public net.minecraft.client.Minecraft func_71370_a(II)V # resize
|
||||
public net.minecraft.client.Minecraft func_180510_a(Lnet/minecraft/client/renderer/texture/TextureManager;)V # drawSplashScreen
|
||||
public net.minecraft.client.Minecraft func_184119_a(Lnet/minecraft/item/ItemStack;Lnet/minecraft/tileentity/TileEntity;)Lnet/minecraft/item/ItemStack; # storeTEInStack
|
||||
# MinecraftServer
|
||||
protected net.minecraft.server.MinecraftServer field_211151_aa # serverTime
|
||||
## DedicatedServer
|
||||
public net.minecraft.server.dedicated.DedicatedServer field_71341_l # pendingCommandList
|
||||
## SaveFormatOld
|
||||
public net.minecraft.world.storage.SaveFormatOld field_75808_a # savesDirectory
|
||||
|
||||
protected net.minecraft.util.ObjectIntIdentityMap field_148749_a # internal map
|
||||
protected net.minecraft.util.ObjectIntIdentityMap field_148748_b # internal index list
|
||||
#protected-f net.minecraft.util.RegistryNamespaced field_148759_a # identitymap
|
||||
|
||||
# GuiButton
|
||||
public net.minecraft.client.gui.GuiButton field_146120_f # width - needed for config GUI stuff
|
||||
public net.minecraft.client.gui.GuiButton field_146121_g # height - needed for config GUI stuff
|
||||
# GuiTextField
|
||||
public-f net.minecraft.client.gui.GuiTextField field_146218_h # width - needed for config GUI stuff
|
||||
public-f net.minecraft.client.gui.GuiTextField field_146219_i # height - needed for config GUI stuff
|
||||
# GuiSlot
|
||||
public net.minecraft.client.gui.GuiSlot field_148149_f # slotHeight - needed for config GUI stuff
|
||||
public net.minecraft.client.gui.GuiSlot field_148151_d # right - needed for config GUI stuff
|
||||
public net.minecraft.client.gui.GuiSlot field_148152_e # left - needed for config GUI stuff
|
||||
public net.minecraft.client.gui.GuiSlot field_148153_b # top - needed for config GUI stuff
|
||||
public net.minecraft.client.gui.GuiSlot field_148154_c # bottom - needed for config GUI stuff
|
||||
public net.minecraft.client.gui.GuiSlot field_148155_a # width - needed for config GUI stuff
|
||||
public net.minecraft.client.gui.GuiSlot field_148158_l # height - needed for config GUI stuff
|
||||
public net.minecraft.client.gui.GuiSlot field_148160_j # headerPadding - needed for config GUI stuff
|
||||
|
||||
# Villager Traid Classes
|
||||
public net.minecraft.entity.passive.EntityVillager$EmeraldForItems
|
||||
public net.minecraft.entity.passive.EntityVillager$ITradeList
|
||||
public net.minecraft.entity.passive.EntityVillager$ItemAndEmeraldToItem
|
||||
public net.minecraft.entity.passive.EntityVillager$ListEnchantedBookForEmeralds
|
||||
public net.minecraft.entity.passive.EntityVillager$ListEnchantedItemForEmeralds
|
||||
public net.minecraft.entity.passive.EntityVillager$ListItemForEmeralds
|
||||
public net.minecraft.entity.passive.EntityVillager$PriceInfo
|
||||
|
||||
# Font renderer
|
||||
protected net.minecraft.client.gui.FontRenderer field_78286_d # charWidth
|
||||
protected net.minecraft.client.gui.FontRenderer field_78287_e # glyphWidth
|
||||
protected net.minecraft.client.gui.FontRenderer field_111273_g # locationFontTexture
|
||||
protected net.minecraft.client.gui.FontRenderer field_78295_j # posX
|
||||
protected net.minecraft.client.gui.FontRenderer field_78296_k # posY
|
||||
protected net.minecraft.client.gui.FontRenderer func_78266_a(IZ)F # renderDefaultChar
|
||||
protected net.minecraft.client.gui.FontRenderer func_78277_a(CZ)F # renderUnicodeChar
|
||||
|
||||
# ChunkGeneratorEnd
|
||||
private-f net.minecraft.world.gen.ChunkGeneratorEnd field_185969_i #lperlin1
|
||||
private-f net.minecraft.world.gen.ChunkGeneratorEnd field_185970_j #lperlin2
|
||||
private-f net.minecraft.world.gen.ChunkGeneratorEnd field_185971_k #perlin
|
||||
private-f net.minecraft.world.gen.ChunkGeneratorEnd field_185973_o #island
|
||||
private-f net.minecraft.world.gen.ChunkGeneratorEnd field_185972_n #endCityGen
|
||||
|
||||
# ChunkGeneratorOverworld
|
||||
private-f net.minecraft.world.gen.ChunkGeneratorOverworld field_185991_j #lperlin1
|
||||
private-f net.minecraft.world.gen.ChunkGeneratorOverworld field_185992_k #lperlin2
|
||||
private-f net.minecraft.world.gen.ChunkGeneratorOverworld field_185993_l #perlin
|
||||
private-f net.minecraft.world.gen.ChunkGeneratorOverworld field_185994_m #surface
|
||||
private-f net.minecraft.world.gen.ChunkGeneratorOverworld field_185979_A #ravineGenerator
|
||||
private-f net.minecraft.world.gen.ChunkGeneratorOverworld field_185980_B #oceanMonumentGenerator
|
||||
private-f net.minecraft.world.gen.ChunkGeneratorOverworld field_186003_v #caveGenerator
|
||||
private-f net.minecraft.world.gen.ChunkGeneratorOverworld field_186004_w #strongholdGenerator
|
||||
private-f net.minecraft.world.gen.ChunkGeneratorOverworld field_186005_x #villageGenerator
|
||||
private-f net.minecraft.world.gen.ChunkGeneratorOverworld field_186006_y #mineshaftGenerator
|
||||
private-f net.minecraft.world.gen.ChunkGeneratorOverworld field_186007_z #scatteredFeatureGenerator
|
||||
private-f net.minecraft.world.gen.ChunkGeneratorOverworld field_191060_C #woodlandMansionGenerator
|
||||
|
||||
# ChunkGeneratorHell
|
||||
private-f net.minecraft.world.gen.ChunkGeneratorHell field_185957_u #lperlin1
|
||||
private-f net.minecraft.world.gen.ChunkGeneratorHell field_185958_v #lperlin2
|
||||
private-f net.minecraft.world.gen.ChunkGeneratorHell field_185959_w #perlin
|
||||
private-f net.minecraft.world.gen.ChunkGeneratorHell field_73177_m #perlin2
|
||||
private-f net.minecraft.world.gen.ChunkGeneratorHell field_73174_n #perlin3
|
||||
public-f net.minecraft.world.gen.ChunkGeneratorHell field_185946_g #scale
|
||||
public-f net.minecraft.world.gen.ChunkGeneratorHell field_185947_h #depth
|
||||
private-f net.minecraft.world.gen.ChunkGeneratorHell field_185939_I #netherCaveGenerator
|
||||
private-f net.minecraft.world.gen.ChunkGeneratorHell field_73172_c #netherBridgeGenerator
|
||||
|
||||
# PlayerManager
|
||||
private-f net.minecraft.server.management.PlayerChunkMapEntry field_187285_e # field_187285_e
|
||||
|
||||
# RenderLivingBase
|
||||
public net.minecraft.client.renderer.entity.RenderLivingBase func_177094_a(Lnet/minecraft/client/renderer/entity/layers/LayerRenderer;)Z # addLayer
|
||||
#public net.minecraft.client.renderer.entity.RenderLivingBase func_177089_b(Lnet/minecraft/client/renderer/entity/layers/LayerRenderer;)Z # removeLayer
|
||||
|
||||
# LootTable Stuff
|
||||
private-f net.minecraft.world.storage.loot.LootPool field_186455_c # rolls
|
||||
private-f net.minecraft.world.storage.loot.LootPool field_186456_d # bonusRolls
|
||||
|
||||
#NBTPrimitive
|
||||
public net.minecraft.nbt.NBTPrimitive
|
||||
|
||||
#GuiOverlayDebug
|
||||
public net.minecraft.client.gui.GuiOverlayDebug func_181554_e()V # renderLagometer
|
||||
protected net.minecraft.client.gui.GuiOverlayDebug field_211537_g # rayTraceBlock
|
||||
protected net.minecraft.client.gui.GuiOverlayDebug field_211538_h # rayTraceFluid
|
||||
|
||||
# Expose vanilla brewing recipe system
|
||||
public net.minecraft.potion.PotionHelper$MixPredicate
|
||||
public net.minecraft.potion.PotionHelper func_193355_a(Lnet/minecraft/item/ItemPotion;Lnet/minecraft/item/Item;Lnet/minecraft/item/ItemPotion;)V # registerPotionItemConversion
|
||||
public net.minecraft.potion.PotionHelper func_193354_a(Lnet/minecraft/item/ItemPotion;)V # registerPotionItem
|
||||
public net.minecraft.potion.PotionHelper func_193357_a(Lnet/minecraft/potion/PotionType;Lnet/minecraft/item/Item;Lnet/minecraft/potion/PotionType;)V # registerPotionTypeConversion
|
||||
public net.minecraft.potion.PotionHelper func_193356_a(Lnet/minecraft/potion/PotionType;Lnet/minecraft/item/crafting/Ingredient;Lnet/minecraft/potion/PotionType;)V # registerPotionTypeConversion
|
||||
|
||||
# TileEntity
|
||||
public net.minecraft.tileentity.TileEntity func_190560_a(Ljava/lang/String;Ljava/lang/Class;)V # register
|
||||
|
||||
# TileEntityHopper
|
||||
public net.minecraft.tileentity.TileEntityHopper func_174914_o()Z # mayTransfer
|
||||
public net.minecraft.tileentity.TileEntityHopper func_145896_c(I)V # setTransferCooldown
|
||||
protected net.minecraft.tileentity.TileEntityHopper func_145887_i()Z # updateHopper
|
||||
|
||||
# DataFixer
|
||||
public net.minecraft.util.datafix.DataFixer field_188262_d # version
|
||||
|
||||
# AbstractSkeleton
|
||||
protected net.minecraft.entity.monster.AbstractSkeleton func_190727_o()Lnet/minecraft/util/SoundEvent; # getStepSound - make AbstractSkeleton implementable
|
||||
|
||||
# EntityWitherSkeleton
|
||||
protected net.minecraft.entity.monster.EntityWitherSkeleton func_190727_o()Lnet/minecraft/util/SoundEvent; # getStepSound - make AbstractSkeleton implementable
|
||||
|
||||
# EntityStray
|
||||
protected net.minecraft.entity.monster.EntityStray func_190727_o()Lnet/minecraft/util/SoundEvent; # getStepSound - make AbstractSkeleton implementable
|
||||
|
||||
# EntitySkeleton
|
||||
protected net.minecraft.entity.monster.EntitySkeleton func_190727_o()Lnet/minecraft/util/SoundEvent; # getStepSound - make AbstractSkeleton implementable
|
||||
|
||||
# EntitySelector
|
||||
public net.minecraft.command.EntitySelector func_190826_c(Ljava/lang/String;)Ljava/lang/String; # addArgument
|
||||
|
||||
# Teleporter
|
||||
protected net.minecraft.world.Teleporter field_85192_a # world
|
||||
protected net.minecraft.world.Teleporter field_77187_a # random
|
||||
protected net.minecraft.world.Teleporter field_85191_c # destinationCoordinateCache
|
||||
|
||||
public net.minecraft.util.ResourceLocation func_177516_a(Ljava/lang/String;)[Ljava/lang/String; # splitObjectName
|
||||
|
||||
# Ingredient
|
||||
public-f net.minecraft.item.crafting.Ingredient
|
||||
protected net.minecraft.item.crafting.Ingredient <init>(Ljava/util/stream/Stream;)V
|
||||
public net.minecraft.item.crafting.Ingredient func_209357_a(Ljava/util/stream/Stream;)Lnet/minecraft/item/crafting/Ingredient;
|
||||
public+f net.minecraft.item.crafting.Ingredient func_199564_a(Lnet/minecraft/network/PacketBuffer;)V
|
||||
public net.minecraft.item.crafting.Ingredient$IItemList
|
||||
public net.minecraft.item.crafting.Ingredient$SingleItemList
|
||||
public net.minecraft.item.crafting.Ingredient$SingleItemList <init>(Lnet/minecraft/item/ItemStack;)V
|
||||
public net.minecraft.item.crafting.Ingredient$TagList
|
||||
public net.minecraft.item.crafting.Ingredient$TagList <init>(Lnet/minecraft/tags/Tag;)V
|
||||
|
||||
# Crafting
|
||||
public net.minecraft.client.Minecraft func_193986_ar()V # populateSearchTreeManager
|
||||
|
||||
# Advancements
|
||||
public net.minecraft.advancements.AdvancementManager func_195439_b(Lnet/minecraft/resources/IResourceManager;)Ljava/util/Map; # loadCustomAdvancements
|
||||
public net.minecraft.advancements.CriteriaTriggers func_192118_a(Lnet/minecraft/advancements/ICriterionTrigger;)Lnet/minecraft/advancements/ICriterionTrigger; # register
|
||||
|
||||
# BiomeProvider
|
||||
public net.minecraft.world.biome.provider.BiomeProvider field_201540_a # BIOMES_TO_SPAWN_IN
|
||||
|
||||
# BlockTags.Wrapper
|
||||
public net.minecraft.tags.BlockTags$Wrapper
|
||||
|
||||
#SaveHandler
|
||||
public net.minecraft.world.storage.SaveHandler field_75771_c # playersDirectory
|
||||
|
||||
#BlockItemUseContext
|
||||
public net.minecraft.item.BlockItemUseContext <init>(Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/item/ItemStack;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/util/EnumFacing;FFF)V
|
||||
|
||||
#EntitySpawnPlacementRegistry
|
||||
public net.minecraft.entity.EntitySpawnPlacementRegistry func_209346_a(Lnet/minecraft/entity/EntityType;Lnet/minecraft/entity/EntitySpawnPlacementRegistry$SpawnPlacementType;Lnet/minecraft/world/gen/Heightmap$Type;Lnet/minecraft/tags/Tag;)V # register
|
||||
|
||||
# Block$Builder
|
||||
public net.minecraft.block.Block$Builder func_200947_a(Lnet/minecraft/block/SoundType;)Lnet/minecraft/block/Block$Builder; # sound
|
||||
public net.minecraft.block.Block$Builder func_200951_a(I)Lnet/minecraft/block/Block$Builder; # lightValue
|
||||
public net.minecraft.block.Block$Builder func_200944_c()Lnet/minecraft/block/Block$Builder; # needsRandomTick
|
||||
public net.minecraft.block.Block$Builder func_208770_d()Lnet/minecraft/block/Block$Builder; # variableOpacity
|
||||
public net.minecraft.block.Block$Builder func_200943_b(F)Lnet/minecraft/block/Block$Builder; # hardnessAndResistance
|
||||
|
|
@ -1,3 +1,22 @@
|
|||
/*
|
||||
* Minecraft Forge
|
||||
* Copyright (c) 2016-2018.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation version 2.1
|
||||
* of the License.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
package net.minecraftforge.userdev;
|
||||
|
||||
import cpw.mods.modlauncher.api.ILaunchHandlerService;
|
||||
|
|
|
@ -1,3 +1,22 @@
|
|||
/*
|
||||
* Minecraft Forge
|
||||
* Copyright (c) 2016-2018.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation version 2.1
|
||||
* of the License.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
package net.minecraftforge.userdev;
|
||||
|
||||
import cpw.mods.modlauncher.api.IEnvironment;
|
||||
|
|
|
@ -1,3 +1,22 @@
|
|||
/*
|
||||
* Minecraft Forge
|
||||
* Copyright (c) 2016-2018.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation version 2.1
|
||||
* of the License.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
package net.minecraftforge.userdev;
|
||||
|
||||
import cpw.mods.modlauncher.api.ILaunchHandlerService;
|
||||
|
|
Loading…
Reference in a new issue