Applied-Energistics-2-tiler.../src/main/java/appeng/services/compass/CompassReader.java
thatsIch 6baf952904 Fixes #976 Now uses GitHub to retrieve most current version
Reworked whole Version Checker with an extensible interface to add any other service later on easier.
The version checker now has its own config file, to collect the different options and extract them from the main config file.
In that you can specify how fine the versions should be checked.
2015-03-17 07:18:49 +01:00

77 lines
1.9 KiB
Java

/*
* This file is part of Applied Energistics 2.
* Copyright (c) 2013 - 2014, AlgorithmX2, All rights reserved.
*
* Applied Energistics 2 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, either version 3 of the License, or
* (at your option) any later version.
*
* Applied Energistics 2 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 Applied Energistics 2. If not, see <http://www.gnu.org/licenses/lgpl>.
*/
package appeng.services.compass;
import java.io.File;
import java.util.HashMap;
public class CompassReader
{
private final HashMap<Long, CompassRegion> regions = new HashMap<Long, CompassRegion>();
private final int dimensionId;
private final File rootFolder;
public void close()
{
for (CompassRegion r : this.regions.values())
{
r.close();
}
this.regions.clear();
}
public CompassReader(int dimensionId, File rootFolder)
{
this.dimensionId = dimensionId;
this.rootFolder = rootFolder;
}
public void setHasBeacon(int cx, int cz, int cdy, boolean hasBeacon)
{
CompassRegion r = this.getRegion( cx, cz );
r.setHasBeacon( cx, cz, cdy, hasBeacon );
}
public boolean hasBeacon(int cx, int cz)
{
CompassRegion r = this.getRegion( cx, cz );
return r.hasBeacon( cx, cz );
}
private CompassRegion getRegion(int cx, int cz)
{
long pos = cx >> 10;
pos = pos << 32;
pos = pos | (cz >> 10);
CompassRegion cr = this.regions.get( pos );
if ( cr == null )
{
cr = new CompassRegion( cx, cz, this.dimensionId, this.rootFolder );
this.regions.put( pos, cr );
}
return cr;
}
}