use of org.blockartistry.DynSurround.packs.ResourcePacks.Pack in project DynamicSurroundings by OreCruncher.
the class FootstepsRegistry method init.
@Override
public void init() {
this.acousticsManager = new AcousticsManager();
this.primitiveMap = new PrimitiveMap(this.acousticsManager);
this.blockMap = new BlockMap(this.acousticsManager);
this.FOOTPRINT_MATERIAL = new IdentityHashSet<>();
this.FOOTPRINT_STATES = new IdentityHashSet<>();
this.ARMOR_SOUND = new EnumMap<>(ArmorClass.class);
this.ARMOR_SOUND_FOOT = new EnumMap<>(ArmorClass.class);
this.variators = new HashMap<>();
// Initialize the known materials that leave footprints
this.FOOTPRINT_MATERIAL.add(Material.CLAY);
this.FOOTPRINT_MATERIAL.add(Material.GRASS);
this.FOOTPRINT_MATERIAL.add(Material.GROUND);
this.FOOTPRINT_MATERIAL.add(Material.ICE);
this.FOOTPRINT_MATERIAL.add(Material.PACKED_ICE);
this.FOOTPRINT_MATERIAL.add(Material.SAND);
this.FOOTPRINT_MATERIAL.add(Material.CRAFTED_SNOW);
this.FOOTPRINT_MATERIAL.add(Material.SNOW);
// It's a hack - needs refactor
AcousticsManager.SWIM = null;
AcousticsManager.JUMP = null;
AcousticsManager.SPLASH = null;
final List<Pack> repo = ResourcePacks.findResourcePacks();
reloadAcoustics(repo);
reloadPrimitiveMap(repo);
seedMap();
}
use of org.blockartistry.DynSurround.packs.ResourcePacks.Pack in project DynamicSurroundings by OreCruncher.
the class RegistryManager method reload.
public void reload() {
// Collect the locations where DS data is configured
final List<Pack> packs = ResourcePacks.findResourcePacks();
final List<ModContainer> activeMods = Loader.instance().getActiveModList();
DSurround.log().info("Identified the following resource pack locations");
packs.stream().map(Pack::toString).forEach(DSurround.log()::info);
// Do the preinit
this.initOrder.forEach(Registry::init);
// Process the mod config from each of our packs
activeMods.stream().map(mod -> {
return new ResourceLocation(DSurround.MOD_ID, "data/" + mod.getModId().toLowerCase() + ".json");
}).forEach(rl -> {
packs.forEach(p -> {
final String loadingText = "[" + rl.toString() + "] <- [" + p.getModName() + "]";
process(p, rl, loadingText);
});
});
// Process general config files from our packs
final ResourceLocation rl = ResourcePacks.CONFIGURE_RESOURCE;
packs.stream().forEach(p -> process(p, rl, "[" + rl.toString() + "] <- [" + p.getModName() + "]"));
// Apply built-in profiles
final List<ProfileScript> resources = Profiles.getProfileStreams();
for (final ProfileScript script : resources) {
try (final InputStreamReader reader = new InputStreamReader(script.stream)) {
final ModConfigurationFile cfg = DataScripts.loadFromStream(reader);
final String loadingText = "[" + DSurround.MOD_ID + "] <- [" + script.packName + "]";
configRegistries(cfg, loadingText);
} catch (@Nonnull final Throwable ex) {
final String temp = String.format("Unable to load profile [%s]", script.packName);
DSurround.log().error(temp, ex);
}
}
// Load scripts specified in the configuration
Arrays.stream(ModOptions.general.externalScriptFiles).forEach(cfg -> configRegistries(DataScripts.loadFromDirectory(cfg), "[" + cfg + "]"));
// Have the registries finalize their settings
this.initOrder.forEach(Registry::initComplete);
// Let everyone know a reload happened
MinecraftForge.EVENT_BUS.post(new ReloadEvent.Registry(this.side));
}
Aggregations