Gridarta Editor
DefaultResources.java
Go to the documentation of this file.
1 /*
2  * Gridarta MMORPG map editor for Crossfire, Daimonin and similar games.
3  * Copyright (C) 2000-2023 The Gridarta Developers.
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 2 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License along
16  * with this program; if not, write to the Free Software Foundation, Inc.,
17  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18  */
19 
20 package net.sf.gridarta.var.daimonin.resource;
21 
22 import java.io.File;
23 import java.io.IOException;
24 import java.util.ArrayList;
25 import java.util.Collection;
26 import java.util.List;
47 import net.sf.japi.swing.misc.Progress;
48 import org.jetbrains.annotations.NotNull;
49 
54 public class DefaultResources extends AbstractResources<GameObject, MapArchObject, Archetype> {
55 
59  @NotNull
61 
65  @NotNull
67 
71  @NotNull
72  private final FaceObjects faceObjects;
73 
77  @NotNull
79 
83  @NotNull
85 
89  @NotNull
91 
95  @NotNull
97 
113  this.archetypeSet = archetypeSet;
114  this.archetypeParser = archetypeParser;
115  this.faceObjects = faceObjects;
116  this.animationObjects = animationObjects;
117  this.archFaceProvider = archFaceProvider;
118  this.faceObjectProviders = faceObjectProviders;
119  this.animationObjectsReader = animationObjectsReader;
120  }
121 
122  @Override
123  protected void readFilesInt(@NotNull final ProjectSettings projectSettings, @NotNull final ErrorView errorView, @NotNull final List<GameObject> invObjects) {
124  faceObjectProviders.setNormal(new FilesResourcesReader(projectSettings.getArchDirectory(), projectSettings.getCollectedDirectory(), archetypeSet, archetypeParser, faceObjects, animationObjects, archFaceProvider, animationObjectsReader).read(errorView, invObjects));
125  invObjects.addAll(loadArtifacts(errorView, projectSettings.getCollectedDirectory(), projectSettings.getMapsDirectory()));
126  }
127 
128  @NotNull
129  @Override
130  protected List<GameObject> readCollectedInt(@NotNull final ProjectSettings projectSettings, @NotNull final ErrorView errorView) {
131  final List<GameObject> invObjects = new ArrayList<>();
132  faceObjectProviders.setNormal(new CollectedResourcesReader(projectSettings.getCollectedDirectory(), archetypeSet, archetypeParser, faceObjects, animationObjects, animationObjectsReader).read(errorView, invObjects));
133  invObjects.addAll(loadArtifacts(errorView, projectSettings.getCollectedDirectory(), projectSettings.getMapsDirectory()));
134  return invObjects;
135  }
136 
137  @Override
138  protected void writeCollectedInt(@NotNull final Progress progress, @NotNull final File collectedDirectory) throws IOException {
139  final CollectedResourcesWriter collectedResourcesWriter = new CollectedResourcesWriter();
140  collectedResourcesWriter.addCollectable(new DaimoninArchetypeSetCollectable(archetypeSet));
142  collectedResourcesWriter.addCollectable(new FaceObjectsCollectable(faceObjects, archFaceProvider));
143  collectedResourcesWriter.write(progress, collectedDirectory);
144  }
145 
153  @NotNull
154  private Collection<GameObject> loadArtifacts(@NotNull final ErrorView errorView, @NotNull final File collectedDirectory, @NotNull final File mapsDirectory) {
156  final File artifactsFile = new File(collectedDirectory, IGUIConstants.ARTIFACTS_FILE);
157  artifactParser.loadArchesFromArtifacts(artifactsFile, "Artifacts", "artifacts");
158  artifactParser.loadArchesFromArtifacts(mapsDirectory, "Artifacts", "maps");
159  return artifactParser.getInvObjects();
160  }
161 
162 }
net.sf.gridarta.var.daimonin.resource.DefaultResources.animationObjectsReader
final DaimoninAnimationObjectsReader animationObjectsReader
The animation objects reader to use.
Definition: DefaultResources.java:96
net.sf.gridarta.model.collectable
Implements the collection process that combines individual files into collected files which are read ...
Definition: AbstractArchetypeSetCollectable.java:20
net.sf.gridarta.var.daimonin.resource.FilesResourcesReader
Loads all resources from individual files.
Definition: FilesResourcesReader.java:42
net.sf.gridarta.model.artifact.ArtifactParser.getInvObjects
Collection< G > getInvObjects()
Returns all collected inventory objects.
Definition: ArtifactParser.java:111
net.sf.gridarta.var.daimonin.resource.DefaultResources.writeCollectedInt
void writeCollectedInt(@NotNull final Progress progress, @NotNull final File collectedDirectory)
Writes the resources in collected form.
Definition: DefaultResources.java:138
net.sf.gridarta.model.collectable.FaceObjectsCollectable
A Collectable that creates the atrinik.0/crossfire.0/daimonin.0 files which contains all defined face...
Definition: FaceObjectsCollectable.java:52
net.sf.gridarta.var.daimonin.model.gameobject
Handles the Daimonin variants of GameObjects and Archetypes.
Definition: DefaultGameObjectFactory.java:20
net.sf.gridarta
Base package of all Gridarta classes.
net.sf.gridarta.var.daimonin.resource.DefaultResources.readCollectedInt
List< GameObject > readCollectedInt(@NotNull final ProjectSettings projectSettings, @NotNull final ErrorView errorView)
Reads the resources from a collection.
Definition: DefaultResources.java:130
net.sf.gridarta.model.io.AbstractArchetypeParser
Abstract base implementation of ArchetypeParser.
Definition: AbstractArchetypeParser.java:47
net.sf.gridarta.model.anim.AnimationObjects
AnimationObjects is a container for AnimationObjects.
Definition: AnimationObjects.java:30
net.sf.gridarta.model.face.ArchFaceProvider
Implementation of FaceProvider which reads images from the arch directory.
Definition: ArchFaceProvider.java:38
net.sf.gridarta.var.daimonin.model.io.DaimoninAnimationObjectsReader
Reads Daimonin AnimationObjects from files.
Definition: DaimoninAnimationObjectsReader.java:32
net.sf.gridarta.var.daimonin.model.collectable.DaimoninArchetypeSetCollectable
A net.sf.gridarta.model.collectable.Collectable that creates the Daimonin specific "archetypes" file.
Definition: DaimoninArchetypeSetCollectable.java:38
net.sf
net.sf.gridarta.model.resource.CollectedResourcesWriter.addCollectable
void addCollectable(@NotNull final Collectable collectable)
Adds a Collectable resource.
Definition: CollectedResourcesWriter.java:46
net.sf.gridarta.var.daimonin.model.archetype.Archetype
Implements Daimonin archetypes.
Definition: Archetype.java:30
net.sf.gridarta.model.errorview.ErrorView
Interface for classes displaying error messages.
Definition: ErrorView.java:28
net.sf.gridarta.model.artifact.ArtifactParser
Parser for artifact definitions.
Definition: ArtifactParser.java:52
net.sf.gridarta.model.face.FaceObjectProviders
Provider for faces of GameObjects and Archetypes.
Definition: FaceObjectProviders.java:46
net.sf.gridarta.var.daimonin.resource.DefaultResources.loadArtifacts
Collection< GameObject > loadArtifacts(@NotNull final ErrorView errorView, @NotNull final File collectedDirectory, @NotNull final File mapsDirectory)
Loads all artifact definitions.
Definition: DefaultResources.java:154
net.sf.gridarta.var
net.sf.gridarta.model.face.FaceObjectProviders.setNormal
void setNormal(@NotNull final FaceProvider normalFaceProvider)
Sets the normal FaceProvider.
Definition: FaceObjectProviders.java:231
net.sf.gridarta.var.daimonin.resource.DefaultResources.archetypeParser
final AbstractArchetypeParser< GameObject, MapArchObject, Archetype, ?> archetypeParser
The AbstractArchetypeParser to use.
Definition: DefaultResources.java:66
net.sf.gridarta.var.daimonin.model
net.sf.gridarta.var.daimonin.IGUIConstants
Defines common UI constants used in different dialogs and all used icon files.
Definition: IGUIConstants.java:31
net.sf.gridarta.var.daimonin.model.io
Reading and writing of Daimonin maps.
Definition: ArchetypeParser.java:20
net.sf.gridarta.var.daimonin.resource.CollectedResourcesReader
Loads all resources from collected files.
Definition: CollectedResourcesReader.java:42
net.sf.gridarta.var.daimonin.resource.DefaultResources.faceObjectProviders
final FaceObjectProviders faceObjectProviders
The FaceObjectProviders for looking up faces.
Definition: DefaultResources.java:90
net
net.sf.gridarta.model.errorview
Definition: ErrorView.java:20
net.sf.gridarta.model.resource.AbstractResources.gameObjectParser
final GameObjectParser< G, A, R > gameObjectParser
The GameObjectParser to use.
Definition: AbstractResources.java:46
net.sf.gridarta.model.resource.AbstractResources
Maintains resources.
Definition: AbstractResources.java:40
net.sf.gridarta.model.artifact
Definition: ArtifactParser.java:20
net.sf.gridarta.var.daimonin.IGUIConstants.ARTIFACTS_FILE
String ARTIFACTS_FILE
Definition: IGUIConstants.java:74
net.sf.gridarta.model.face.FaceObjects
FaceObjects is a container for FaceObjects.
Definition: FaceObjects.java:31
net.sf.gridarta.model.resource.CollectedResourcesWriter
Writes resources into a collection.
Definition: CollectedResourcesWriter.java:34
net.sf.gridarta.model.archetypeset.ArchetypeSet
Interface that captures similarities between different ArchetypeSet implementations.
Definition: ArchetypeSet.java:37
net.sf.gridarta.var.daimonin.resource.DefaultResources.DefaultResources
DefaultResources(@NotNull final GameObjectParser< GameObject, MapArchObject, Archetype > gameObjectParser, @NotNull final ArchetypeSet< GameObject, MapArchObject, Archetype > archetypeSet, @NotNull final AbstractArchetypeParser< GameObject, MapArchObject, Archetype, ?> archetypeParser, @NotNull final FaceObjects faceObjects, @NotNull final AnimationObjects animationObjects, @NotNull final ArchFaceProvider archFaceProvider, @NotNull final FaceObjectProviders faceObjectProviders, @NotNull final DaimoninAnimationObjectsReader animationObjectsReader)
Creates a new instance.
Definition: DefaultResources.java:111
net.sf.gridarta.var.daimonin.resource.FilesResourcesReader.read
FaceProvider read(@NotNull final ErrorView errorView, @NotNull final List< GameObject > invObjects)
Definition: FilesResourcesReader.java:76
net.sf.gridarta.model.resource
Definition: AbstractCollectedResourcesReader.java:20
net.sf.gridarta.var.daimonin.model.gameobject.GameObject
Handles the Daimonin GameObjects.
Definition: GameObject.java:42
net.sf.gridarta.var.daimonin.resource.DefaultResources.archetypeSet
final ArchetypeSet< GameObject, MapArchObject, Archetype > archetypeSet
The ArchetypeSet to update.
Definition: DefaultResources.java:60
net.sf.gridarta.model.io
Reading and writing of maps, handling of paths.
Definition: AbstractAnimationObjectsReader.java:20
net.sf.gridarta.model.settings.ProjectSettings
Settings that apply to a project.
Definition: ProjectSettings.java:29
net.sf.gridarta.model.resource.CollectedResourcesWriter.write
void write(@NotNull final Progress progress, @NotNull final File collectedDirectory)
Writes the resources into a collection.
Definition: CollectedResourcesWriter.java:56
net.sf.gridarta.var.daimonin.resource.DefaultResources.archFaceProvider
final ArchFaceProvider archFaceProvider
The ArchFaceProvider to use.
Definition: DefaultResources.java:84
net.sf.gridarta.var.daimonin.resource.DefaultResources.readFilesInt
void readFilesInt(@NotNull final ProjectSettings projectSettings, @NotNull final ErrorView errorView, @NotNull final List< GameObject > invObjects)
Definition: DefaultResources.java:123
net.sf.gridarta.var.daimonin.resource.CollectedResourcesReader.read
FaceProvider read(@NotNull final ErrorView errorView, @NotNull final List< GameObject > invObjects)
Definition: CollectedResourcesReader.java:60
net.sf.gridarta.model
net.sf.gridarta.var.daimonin.model.archetype
Definition: Archetype.java:20
net.sf.gridarta.var.daimonin
Main package of Gridarta4Daimonin, contains all classes specific to the Daimonin version of the Grida...
net.sf.gridarta.model.face
The face is the appearance of an object.
Definition: AbstractFaceObjects.java:20
net.sf.gridarta.var.daimonin.IGUIConstants.ANIMTREE_FILE
String ANIMTREE_FILE
File to store the animation tree information after arch collection.
Definition: IGUIConstants.java:72
net.sf.gridarta.model.anim
Gridarta can handle frame information of animations and allow the selection of an animation using a t...
Definition: AbstractAnimationObjects.java:20
net.sf.gridarta.var.daimonin.model.maparchobject.MapArchObject
MapArchObject contains the specific meta data about a map that is stored in the map-arch,...
Definition: MapArchObject.java:39
net.sf.gridarta.var.daimonin.model.maparchobject
Definition: DefaultMapArchObjectFactory.java:20
net.sf.gridarta.var.daimonin.resource.DefaultResources
A resource loader for Crossfire resources.
Definition: DefaultResources.java:54
net.sf.gridarta.model.collectable.AnimationObjectsCollectable
a Collectable that creates the "animations" file.
Definition: AnimationObjectsCollectable.java:44
net.sf.gridarta.var.daimonin.model.collectable
Definition: DaimoninArchetypeSetCollectable.java:20
net.sf.gridarta.model.io.GameObjectParser
Interface for classes that read or write GameObject instances.
Definition: GameObjectParser.java:37
net.sf.gridarta.model.artifact.ArtifactParser.loadArchesFromArtifacts
void loadArchesFromArtifacts(@NotNull final File f, @NotNull final String panelName, @NotNull final String folderName)
This method takes a filename or directory name as argument.
Definition: ArtifactParser.java:125
net.sf.gridarta.model.archetypeset
Definition: ArchetypeSet.java:20
net.sf.gridarta.model.settings
Definition: AbstractDefaultProjectSettings.java:20
net.sf.gridarta.var.daimonin.resource.DefaultResources.faceObjects
final FaceObjects faceObjects
The FaceObjects instance.
Definition: DefaultResources.java:72
net.sf.gridarta.var.daimonin.resource.DefaultResources.animationObjects
final AnimationObjects animationObjects
The AnimationObjects instance.
Definition: DefaultResources.java:78